编写算法,根据用户输入的字符数据用尾插入法创建一个带头结构的单链表,“#”作为数据输入的结束符
时间: 2023-05-11 09:02:04 浏览: 126
尾插入法创建带头结构的单链表的算法步骤如下:
1. 定义一个头结点,并初始化为空链表。
2. 读入用户输入的字符数据,直到输入结束。
3. 对于每个输入的字符,创建一个新的结点,并将该字符存储在结点的数据域中。
4. 将新结点插入到链表的尾部,即将新结点的指针域指向头结点的前一个结点的指针域所指向的结点,同时将头结点的前一个结点的指针域指向新结点。
5. 循环执行步骤3和步骤4,直到所有输入的字符都被插入到链表中。
6. 返回头结点,表示链表创建完成。
具体实现可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
char data;
struct Node *next;
} Node, *LinkedList;
LinkedList createList() {
LinkedList head = (LinkedList) malloc(sizeof(Node));
head->next = NULL;
return head;
}
void insertTail(LinkedList head, char data) {
Node *newNode = (Node *) malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
Node *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newNode;
}
int main() {
LinkedList list = createList();
printf("请输入字符数据,以回车结束:\n");
char c;
while ((c = getchar()) != '\n') {
insertTail(list, c);
}
printf("链表中的字符数据为:");
Node *p = list->next;
while (p != NULL) {
printf("%c ", p->data);
p = p->next;
}
printf("\n");
return 0;
}
```
阅读全文