实现线性表的链式存储定义,完成单链表的创建(头插法、尾插法)、插入、删除、查找等常用操作,将线性链表逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,以此类推。求源码

1个回答
展开全部
摘要 下面是一个C语言单链表逆置的实现,包括头插法、尾插法、插入、删除、查找等操作。代码中定义了一个结构体 Node 作为链表的节点,其中包含了一个数据域和一个指向下一个节点的指针域。```c#include #include //链表节点结构体typedef struct Node { int data; struct Node* next;} Node;//链表初始化void init(Node** head) { *head = NULL;}//头插法建立链表void insert_head(Node** head, int data) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->next = *head; *head = node;}
咨询记录 · 回答于2023-05-14
实现线性表的链式存储定义,完成单链表的创建(头插法、尾插法)、插入、删除、查找等常用操作,将线性链表逆置,即最后一个结点变成第一个结点,原来倒数第二个结点变成第二个结点,以此类推。求源码
下面是一个C语言单链表逆置的实现,包括头插法、尾插法、插入、删除、查找等操作。代码中定义了一个结构体 Node 作为链表的节点,其中包含了一个数据域和一个指向下一个节点的指针域。```c#include #include //链表节点结构体typedef struct Node { int data; struct Node* next;} Node;//链表初始化void init(Node** head) { *head = NULL;}//头插法建立链表void insert_head(Node** head, int data) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->next = *head; *head = node;}
//尾插法建立链表void insert_tail(Node** head, int data) { Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->next = NULL; if (*head == NULL) { *head = node; } else { Node* tail = *head; while (tail->next != NULL) { tail = tail->next; } tail->next = node; }}
count++; } return p;}//插入节点void insert(Node** head, int index, int data) { if (index == 0) { insert_head(head, data); } else { Node* prev = find(*head, index - 1); if (prev == NULL) { printf("插入位置无效!"); return; } Node* node = (Node*)malloc(sizeof(Node)); node->data = data; node->next = prev->next; prev->next = node; }}
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消