单链表操作验证:C语言实现、结构存储与功能展示
实验代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *createNode(int data) {
Node *newNode = (Node *)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
void insertNode(Node **head, int data) {
Node *newNode = createNode(data);
newNode->next = *head;
*head = newNode;
}
void deleteNode(Node **head, int data) {
Node *temp = *head, *prev;
if (temp != NULL && temp->data == data) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != data) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
void printList(Node *head) {
Node *temp = head;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
printf("NULL
");
}
int main() {
Node *head = NULL;
int choice, data;
while (1) {
printf("1. 创建链表
");
printf("2. 插入节点
");
printf("3. 删除节点
");
printf("4. 打印链表
");
printf("5. 退出
");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入要插入的数据:");
scanf("%d", &data);
insertNode(&head, data);
break;
case 2:
printf("请输入要删除的数据:");
scanf("%d", &data);
deleteNode(&head, data);
break;
case 3:
printList(head);
break;
case 4:
printList(head);
break;
case 5:
exit(0);
default:
printf("无效的选择,请重新输入。
");
}
}
return 0;
}
```
这段代码实现了单链表的基本操作,包括创建链表、插入节点、删除节点和打印链表。通过一个菜单的形式展示和选择操作。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。