写一个带注释的c语言动态链表
时间: 2023-12-25 07:05:40 浏览: 82
以下是带注释的C语言动态链表代码:
#include <stdio.h>
#include <stdlib.h>
// 定义节点结构体
struct Node {
int data; // 节点存储的数据
struct Node *next; // 指向下一个节点的指针
};
int main() {
// 初始化链表
struct Node *head = NULL; // 头结点指针,初始值为NULL
struct Node *tail = NULL; // 尾结点指针,初始值为NULL
// 添加节点
for (int i = 1; i <= 5; i++) {
struct Node *newNode = (struct Node*) malloc(sizeof(struct Node)); // 创建新节点
newNode->data = i; // 新节点存储数据
newNode->next = NULL; // 新节点的下一个节点为NULL
// 如果链表为空,头结点和尾结点都指向新节点
if (head == NULL) {
head = newNode;
tail = newNode;
}
// 如果链表不为空,把新节点插入到尾结点之后
else {
tail->next = newNode;
tail = newNode;
}
}
// 遍历链表,输出每个节点的数据
struct Node *cur = head; // cur节点指针,初始值为头结点指针
while (cur != NULL) {
printf("%d ", cur->data);
cur = cur->next; // 指向下一个节点
}
// 释放链表所占内存
cur = head;
while (cur != NULL) {
struct Node *next = cur->next;
free(cur);
cur = next;
}
return 0;
}
阅读全文