用c语言写构造链串结构并初始化链串
时间: 2023-08-16 10:04:24 浏览: 112
通过字符串初始化-C程序设计语言课件
要用C语言构造链串结构并初始化链串,需要定义一个结构体来表示链表中的节点,如下所示:
```c
struct Node {
char data; // 节点中存储的数据
struct Node* next; // 指向下一个节点的指针
};
```
然后可以定义一个函数来初始化链表,如下所示:
```c
struct Node* initList(char* str) {
struct Node* head = NULL; // 头节点初始化为NULL
struct Node* tail = NULL; // 尾节点初始化为NULL
// 遍历字符串,逐个创建节点并加入链表
for (int i = 0; str[i] != '\0'; i++) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); // 创建新节点
newNode->data = str[i]; // 设置节点数据
newNode->next = NULL; // 将节点的next指针初始化为NULL
// 如果链表为空,将新节点作为头节点
if (head == NULL) {
head = newNode;
tail = newNode;
}
// 否则将新节点加入链表的尾部
else {
tail->next = newNode;
tail = newNode;
}
}
return head;
}
```
这个函数接受一个字符数组作为输入,遍历该数组,逐个创建节点并加入链表中。如果链表为空,将新节点作为头节点;否则将新节点加入链表的尾部。最后返回头节点的指针。
例如,要初始化一个链表,使其存储字符串"hello world",可以这样调用该函数:
```c
struct Node* head = initList("hello world");
```
这样就创建了一个包含11个节点的链表,每个节点依次存储字符"h"、"e"、"l"、"l"、"o"、" "、"w"、"o"、"r"、"l"和"d"。
阅读全文