编写算法,根据用户输入的字符数据用尾插入法创建一个带头结构的单链表,“#”作为数据输入的结束符。c语言实现,并给出算法流程
时间: 2024-05-08 12:15:54 浏览: 91
数据结构C语言单链表上实现插入和删除的算法实验报告.docx
5星 · 资源好评率100%
尾插入法”指的是将新节点插入到链表的末尾。
算法步骤如下:
1. 创建头结点,并将其 next 指针置为 NULL。
2. 循环读取用户输入的字符,直到输入结束。
3. 对于每个输入的字符,创建一个新的节点,并将其值设置为输入的字符。
4. 将新节点插入到链表的末尾,即将头结点的 next 指针指向新节点,并将新节点的 next 指针置为 NULL。
5. 循环结束后,返回头结点即可。
具体实现代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
char data;
struct Node* next;
} Node;
Node* createList() {
Node* head = (Node*) malloc(sizeof(Node));
head->next = NULL;
return head;
}
void insertNode(Node* 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() {
Node* head = createList();
char input;
printf("请输入字符数据(以回车结束):\n");
while ((input = getchar()) != '\n') {
insertNode(head, input);
}
printf("创建的链表为:\n");
Node* p = head->next;
while (p != NULL) {
printf("%c ", p->data);
p = p->next;
}
printf("\n");
return 0;
}
```
阅读全文