C语言实现单链表(不带头结点)节点的插入
2017-08-11 12:20
549 查看
对单链表进行增删改查是最主要的操作。我在上一篇博客《C语言实现链表节点的删除》实现了删除单链表中的某个节点。
这里我们要来实如今某个位置插入节点。演示样例代码上传至https://github.com/chenyufeng1991/InsertList 。
核心代码例如以下:
Node *InsertToPosition(Node *pNode,int pos,int x){ if (pos < 0 || pos > sizeList(pNode) ) { printf("%s函数运行,pos=%d非法,插入数据失败\n",__FUNCTION__,pos); return pNode; } Node *pMove; Node *pInsert; pInsert = (Node *)malloc(sizeof(Node)); memset(pInsert, 0, sizeof(Node)); pInsert->next = NULL; pInsert->element = x; pMove = pNode; int i = 1; //这里单独考虑pos=0的情况 if (pos == 0) { pInsert->next = pNode; pNode = pInsert; printf("%s函数运行,在pos=%d插入x=%d成功\n",__FUNCTION__,pos,x); return pNode; } while (pMove != NULL) { if (i == pos) { pInsert->next = pMove->next; pMove->next = pInsert; printf("%s函数运行。在pos=%d插入x=%d成功\n",__FUNCTION__,pos,x); break; } i++; pMove = pMove->next; } return pNode; }
相关文章推荐
- C语言实现双向非循环链表(带头结点尾结点)的节点插入
- C语言实现单链表节点的删除(带头结点)
- C语言实现单链表节点的删除(带头结点)
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C语言实现单链表的节点插入(带头结点)
- C语言实现单链表(带头结点)的基本操作
- 试编写在无头结点的单链表上实现线性表的插入操作的算法,并和带头结点的单链表上的插入操作的算法进行比较
- 带头结点的单链表的插入,删除,转置,清空,判断空,统计节点数目
- 数据结构 P38 算法实现 在带头结点的单链表的第i个元素插入元素e
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 单链表插入和删除结点c语言的实现
- 数据结构模版----单链表SimpleLinkList[不带头结点](C语言实现)
- C语言实现链表节点的插入和删除
- C语言实现链表之双向链表(七)尾结点后插入结点
- 建立一个带附加头结点的单链表.实现测长/打印/删除结点/插入结点/逆置/查找中间节点/查找倒数第k个节点/判断是否有环
- C语言实现双向链表删除节点、插入节点、双向输出等操作
- C语言实现单链表-不带头结点
- c语言实现--带头结点单链表操作
- [原]C语言实现双向链表删除节点、插入节点、双向输出等操作
- C语言实现双向链表删除节点、插入节点、双向输出等操作