随笔分类 -  链表

同时创建两条单链表,头插法插入节点,遍历,查找,删除,求长度,冒泡排序,反转,2条有序链表链接成一条链表后依然有序
摘要:1 #include 2 #include 3 /* 4 链表每日一练:创建2条空链表,头插法插入节点,遍历,查找,删除,求长度,冒泡排序,反转,2条有序链表链接成一条链表后依然有序。 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 1... 阅读全文

posted @ 2018-10-05 15:10 王朝马汉 阅读(368) 评论(0) 推荐(0)

逆向遍历链表
摘要:1 #include 2 #include 3 /* 4 从尾到头打印链表。 5 思路:利用递归调用逐级返回的特性,也就是栈的特性:先进后出,后进先出。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next; 11 }NODE; 12 NODE * createList(... 阅读全文

posted @ 2018-10-01 15:03 王朝马汉 阅读(886) 评论(0) 推荐(0)

求链表中间结点
摘要:1 #include 2 #include 3 /* 4 查找链表中间的结点。 5 思路1:求长度:中间结点 = len/2 6 思路2:定义两个指针p1,p2指向头结点,p1走一步,p2走两步,当p2指向尾结点的下一个结点的时候,p1指向中间结点。 7 疑问:比如链表有5个结点,那么第3个是中间结点毫无疑问,但是如果6个结点,那么第3个算中间结点,还是第4个算中... 阅读全文

posted @ 2018-10-01 14:22 王朝马汉 阅读(366) 评论(0) 推荐(0)

二种方法查找链表倒数第K个结点
摘要:1 #include 2 #include 3 /* 4 题目:查找链表中倒数第K个结点,K>0 5 思路1:考虑 链表为空,K大于链表长度 这三种情况 6 1.链表为空,即:不存在倒数第K个结点 7 2.k>len.即:不存在倒数第K个结点。 8 3.knext = NULL; 27 28 return he... 阅读全文

posted @ 2018-10-01 11:46 王朝马汉 阅读(446) 评论(0) 推荐(0)

选择法实现链表排序
摘要:1 #include 2 #include 3 /* 4 选择法实现链表排序 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 NODE * createList() 12 { 13 NODE *head = (NODE *)malloc(siz... 阅读全文

posted @ 2018-09-29 23:38 王朝马汉 阅读(554) 评论(0) 推荐(0)

链表:创建空链表,插入节点,遍历,求长度,查找,删除,反转
摘要:1 #include 2 #include 3 /* 4 链表:创建空链表,插入节点,遍历,求长度,查找,删除,反转 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //创建空链表 12 NODE * createList() ... 阅读全文

posted @ 2018-09-29 17:17 王朝马汉 阅读(741) 评论(0) 推荐(0)

链表指针交换实现冒泡排序
摘要:1 #include 2 #include 3 /* 4 链表指针交换实现冒泡排序:核心思想:1.每次都从头开始比较 5 2.sh,p,q整体往前走一步(交不交换都要往前走) 6 3.交换完之后p变成q,q变成p,整体往前走,下次交换就会... 阅读全文

posted @ 2018-09-27 22:03 王朝马汉 阅读(873) 评论(0) 推荐(0)

链表值排序之冒泡
摘要:1 #include 2 #include 3 /* 4 链表值排序之冒泡:核心思想:1.每次都从头开始比较 5 2.推动链表往下走的不在是下标 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next; 11 }NODE; 12 ... 阅读全文

posted @ 2018-09-25 23:37 王朝马汉 阅读(340) 评论(0) 推荐(0)

头插法链表的基本操作:创建空链表,插入结点,遍历链表,求链表长度,查找结点,删除结点
摘要:1 #include 2 #include 3 /* 4 头插法链表的基本操作:创建空链表,插入节点,遍历输出节点数据,求链表长度,查找结点,删除结点。 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //创建空链表 12 NO... 阅读全文

posted @ 2018-09-25 19:53 王朝马汉 阅读(423) 评论(0) 推荐(0)

尾插法链表拆分
摘要:1 #include 2 #include 3 /* 4 尾插法链表拆分:1.建立空链表。2.插入节点。3.遍历并输出插入节点后的链表数据 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //建立空链表 12 NODE * createList() 1... 阅读全文

posted @ 2018-09-23 22:20 王朝马汉 阅读(242) 评论(0) 推荐(0)

头插法链表拆分
摘要:1 #include 2 #include 3 /* 4 头插法链表拆分:1,建立空链表。2插入节点。3遍历输出插入节点后的链表数据 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //1.建立空链表 12 NODE * createList() 13... 阅读全文

posted @ 2018-09-23 22:17 王朝马汉 阅读(263) 评论(0) 推荐(0)

尾插法创建链表
摘要:1 #include 2 #include 3 /* 4 尾插法创建链表:尾插法就是每次都把结点插在尾结点后面 5 总结:尾插法相对头插法 需要多定义一个指针pt来保存尾结点的地址。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next; 11 }NODE; 12 NODE * cr... 阅读全文

posted @ 2018-09-23 22:15 王朝马汉 阅读(2720) 评论(0) 推荐(0)

头插法创建链表
摘要:1 #include 2 #include 3 /* 4 头插法建立链表:所谓头插法,就是新来的结点每次都插在头结点后面 5 内功心法:让新来的结点先有所指向(指向头结点的下一个结点),新来的结点,有所指向不会打断原有的指向关系。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next... 阅读全文

posted @ 2018-09-23 22:13 王朝马汉 阅读(1348) 评论(0) 推荐(0)

导航