摘要:1 #include 2 #include 3 /* 4 链表每日一练:创建2条空链表,头插法插入节点,遍历,查找,删除,求长度,冒泡排序,反转,2条有序链表链接成一条链表后依然有序。 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 1...
阅读全文
摘要: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(...
阅读全文
摘要:1 #include 2 #include 3 /* 4 查找链表中间的结点。 5 思路1:求长度:中间结点 = len/2 6 思路2:定义两个指针p1,p2指向头结点,p1走一步,p2走两步,当p2指向尾结点的下一个结点的时候,p1指向中间结点。 7 疑问:比如链表有5个结点,那么第3个是中间结点毫无疑问,但是如果6个结点,那么第3个算中间结点,还是第4个算中...
阅读全文
摘要: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...
阅读全文
摘要: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...
阅读全文
摘要: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() ...
阅读全文
摘要:1 #include 2 #include 3 /* 4 链表指针交换实现冒泡排序:核心思想:1.每次都从头开始比较 5 2.sh,p,q整体往前走一步(交不交换都要往前走) 6 3.交换完之后p变成q,q变成p,整体往前走,下次交换就会...
阅读全文
摘要: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 ...
阅读全文
摘要:1 #include 2 #include 3 /* 4 头插法链表的基本操作:创建空链表,插入节点,遍历输出节点数据,求链表长度,查找结点,删除结点。 5 */ 6 typedef struct node 7 { 8 int data; 9 struct node * next; 10 }NODE; 11 //创建空链表 12 NO...
阅读全文
摘要: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...
阅读全文
摘要: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...
阅读全文
摘要: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...
阅读全文
摘要:1 #include 2 #include 3 /* 4 头插法建立链表:所谓头插法,就是新来的结点每次都插在头结点后面 5 内功心法:让新来的结点先有所指向(指向头结点的下一个结点),新来的结点,有所指向不会打断原有的指向关系。 6 */ 7 typedef struct node 8 { 9 int data; 10 struct node * next...
阅读全文