用c语言以尾插法创建单链表并销毁单链表
时间: 2024-03-17 09:46:32 浏览: 93
尾插法单链表的建立
好的,我来回答你的问题。
首先,我们需要定义单链表的结构体,包括数据域和指向下一个节点的指针:
```c
typedef struct Node {
int data;
struct Node *next;
} Node;
```
然后,我们可以编写一个函数来创建单链表。这里我们采用尾插法,即每次在链表末尾插入一个新节点:
```c
Node *createLinkedList() {
Node *head = NULL; // 头节点指针
Node *tail = NULL; // 尾节点指针
int data;
printf("请输入节点的数据(输入-1结束):");
scanf("%d", &data);
while (data != -1) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
printf("请输入节点的数据(输入-1结束):");
scanf("%d", &data);
}
return head;
}
```
接下来,我们需要编写一个函数来销毁单链表。我们可以遍历整个链表,依次释放每个节点的内存空间:
```c
void destroyLinkedList(Node *head) {
Node *p = head;
while (p != NULL) {
Node *q = p->next;
free(p);
p = q;
}
}
```
这样,我们就完成了用c语言以尾插法创建单链表并销毁单链表的操作。
阅读全文