深入剖析:如何有效提升团队协作效率的关键策略与方法
这是一个C语言实现的单链表操作程序,包括创建、插入、删除、查找和显示链表内容等功能。程序采用标准C语言编写,对单链表操作前和操作后都会输出链表的内容。对要进行的操作有相应的提示信息。程序采用菜单的形式进行展示和选择,并写出每一步的作用。
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node;
Node *create_node(int data) {
Node *new_node = (Node *)malloc(sizeof(Node));
new_node->data = data;
new_node->next = NULL;
return new_node;
}
void insert_node(Node **head, int data) {
Node *new_node = create_node(data);
new_node->next = *head;
*head = new_node;
}
void delete_node(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);
}
Node *search_node(Node *head, int data) {
Node *temp = head;
while (temp != NULL) {
if (temp->data == data) {
return temp;
}
temp = temp->next;
}
return NULL;
}
void display_list(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("6. 退出
");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入节点数据:");
scanf("%d", &data);
insert_node(&head, data);
break;
case 2:
printf("请输入要插入的节点数据:");
scanf("%d", &data);
insert_node(&head, data);
break;
case 3:
printf("请输入要删除的节点数据:");
scanf("%d", &data);
delete_node(&head, data);
break;
case 4:
printf("请输入要查找的节点数据:");
scanf("%d", &data);
Node *found_node = search_node(head, data);
if (found_node != NULL) {
printf("找到节点,地址为:%p,值为:%d
", found_node, found_node->data);
} else {
printf("未找到节点
");
}
break;
case 5:
display_list(head);
break;
case 6:
exit(0);
default:
printf("无效的选择,请重新输入
");
}
}
return 0;
}
```
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。