《C语言及程序设计》教学视频 <18 链表中结点的插入和删除> 示例代码
2017-05-02 17:55
267 查看
2017-05-02
//创建一个有序链表 #include <stdio.h> #include <malloc.h> typedef struct Link{ int data; struct Link *next; }Node; //建立有序链表 Node *insertNode(Node *head, int b) { Node *q1=NULL, *q2=NULL, *p=NULL; //指向头节点的指针 中间指针 指向新建节点的指针 q1=head; p = (Node *)malloc(sizeof(Node)); p->data=b; if(head==NULL)//如果当前链表为空,则将新建节点作为首节点 { head = p; p->next=NULL; } else if(p->data < q1->data)//若新建节点数据比首节点数据小,则将新建节点置为首节点 { head = p; p->next = q1; } else//找到位置插入新建节点 { while(q1!=NULL && q1->data < p->data) { q2 = q1; q1 = q1->next; } //将新建节点 p 插在q2 后面 p->next = q2->next; q2->next = p; } return head; } //遍历链表 void traverse(Node *head) { Node *p=NULL; p=head;//p 指向头节点 do{ printf("%-5d", p->data); p=p->next;//p 指向下一个节点 }while(p!=NULL); printf("\n"); } //驱动测试函数 void main() { int i=0; Node *head = NULL; int a[] = {78, 69, 98, 27, 36}; for(i=0; i<5; i++) { head = insertNode(head, a[i]); } traverse(head);//遍历有序链表 }
相关文章推荐
- 《C语言及程序设计》教学视频 <18 链表中结点的插入和删除> 示例代码
- 《C语言及程序设计》教学视频 <18 链表中结点的插入和删除> 示例代码
- 《C语言及程序设计》教学视频 <18 链表中结点的插入和删除> 示例代码
- C语言及程序设计进阶例程-18 链表中结点的插入和删除
- 线性表之<链表linklist>的储存及插入、删除-C代码实现
- 数据结构C语言>3基本链表>3-5链表的结点删除
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- <笔试><面试>单链表相关(1)从尾到头打印链表、删除一个无头链表的非尾结点
- 链表的建立以及增加、删除结点的C语言完整代码
- <笔试><面试>单链表相关(1)从尾到头打印链表、删除一个无头链表的非尾结点
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 单链表插入和删除结点c语言的实现
- 线性表之<顺序表sqlist>的储存及插入、删除-C代码实现
- 链表操作 对链表进行输入,插入,删除结点,按关键字进行查找操作 C语言
- 关于链表的新建,删除结点,插入结点的代码
- C语言代码--关于树的插入、四种遍历(前序、中序、后序、层次)、树种结点的删除--我自己的代码
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- <LeetCode> 题174:删除链表中倒数第n个结点
- 指针链表形成,新的结点的插入和删除