链表是一种动态的数据结构,因为在创建链表时,不需要知道链表的长度,只需要对指针进行操作。
链表的节点包括两部分,分别是:数据域和(指向下一个节点的)指针域。
struct node {int data;struct node* next;};
struct node* createlist() {//创建一个指针来表示表头struct node* headnode = (struct node*)malloc(sizeof(struct node));headnode->next = null;return headnode;}
struct node* createno行政助理岗位职责de(int data) {//创建一个新的指针节点struct node* newnode = (struct node*)malloc(sizeof(struct node));//结构体变量初始化newnode->data = data;newnode->next = null;return newnode;}承诺书模板
节点的插入分为三种:头插法、尾插法、在链表中间插入节点。
头插法,顾名思义就是在链表的第一个节点插入一休闲农业与休闲农庄个节点。
解决方法:让新插入的节点的next指针指向链表的头结点即可。
void inrtnodebyhead(struct node* headnode, int data) {struct node* newnode = createnode(data);newnode->next = headnode-&g2013江西高考语文试卷t;next;headnode->next = newnode;}
尾插法,顾名思义就是在链表的末尾增加一个节点。
解决思路:首先找到链表的最后一个节点;然后让最后的节点的next指针指向要插入的这个节点,插入的节点的next指针指向null即可。
void inrtnodebytail(struct node* headnode, int data) {struct node* newnode = createnode(data);while (headnode->next != null){headnode = headnode->next;//找到最后一个节点}headnode->next = newnode;newnode->next = null;}
插入中间节点:即在数据为 i 的节点后面添加新的节点。
解决思路:首先判断数据为i 的节点posnode是否在链表中存在;然后从第一个节点开始查找节点posnode。找到后就让插入的节点的next指针指向posnode的下一个节点,posnode的next指针指向新插入的节点即可。
void inrtnodebycenter(struct node* headnode, int data, int i) {struct node* posnode = headnode;/*struct node* posnodefront = headnode;*/struct node* newnode = createnode(data);if (posnode == null) {printf("无法查找此数据,链表为空\n");}el {while (posnode->data != i) {posnode = posnode->next;//前面位置到达了后面节点的位置/*posnode = posnodefront->next;*///后面位置变成了原来位置的下一个if (posnode == null) {printf("未找到此数据\n");break;}}newnode->next = posnode->next;posnode->next = newnode;}}
到此这篇关于c++链表节点的添加和删除介绍的文章就介绍到这了,更多相关c++链表节点内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 13:26:04,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/b45f27424cbf45f0c984ea4b7e3a1779.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C++链表节点的添加和删除介绍.doc
本文 PDF 下载地址:C++链表节点的添加和删除介绍.pdf
留言与评论(共有 0 条评论) |