数据结构第二章 3题 给定一个不带头结点的单链表,写出将链表倒置的算法。
2022-03-29 10:09:54 2.58MB 链表倒置 数据结构 链表
1
自己写的c++异质链表,使用继承的多态性实现
2022-03-28 12:13:14 3KB 异质链表 c++
1
主要为大家详细介绍了C++单链表实现大数加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1
建立一个单链表,在单链表上实现插入、删除和查找等操作,有菜单。 ⑴初始化字符型单链表H; ⑵采用尾插法建立单链表H,如(a,b,c,d,c); ⑶输出单链表H的长度; ⑷输出单链表H的第i个元素,如输出单链表H的第3个元素; ⑸输出给定元素的位置,如输出元素a的位置; ⑹在第i个元素前插入给定元素,如在第4个元素前插入元素f; ⑺删除单链表H的第i个元素,如删除单链表H的第3个元素。 ⑻输出单链表
2022-03-26 15:32:07 6KB 适合初学者
1
成绩管理系统,Linux下运行(包含Makefile)
2022-03-26 01:07:21 30KB Linux 成绩管理系统 Makefile
1
有错误和更好的建议请指出,大家一起学习!!
2022-03-26 00:35:08 677B 单链表建立头插法
1
模拟FF,WF,BF内存管理算法,有紧缩处理,排序处理,碎片处理。Windows下,Linux下均可运行。
2022-03-25 12:22:49 15KB 操作系统 内存管理 c语言 链表
1
源码,经典。 CARD *myinsert(LCARD *head, LCARD *insert) { LCARD *temp = NULL; if (head==NULL)//链表为空 { head = insert; insert->next = insert; insert->prior = insert; } else//链表非空 { temp = head; if (head->cardnum>insert->cardnum)//插入到头前边,并且把自己当作头 { head->prior->next = insert; insert->prior = head->prior; insert->next = head; head->prior = insert; head = insert; } if (insert->cardnum0cardnumcardnum)&&(temp->next!=head))//循环 { temp = temp->next; } if (temp->cardnum>insert->cardnum)//第一个条件终止的 { temp->prior->next = insert; insert->prior = temp->prior; insert->next = temp; temp->prior = insert; } else//第二个条件终止的 { head->prior->next = insert; insert->prior = head->prior; insert->next = head; head->prior = insert; } } else//大于50反向插入 { while ((temp->cardnum>insert->cardnum)&&(temp->prior!=head))//循环,第二个条件禁止跑飞 { temp = temp->prior; } if (temp->cardnumcardnum)//只有第一个条件可以终止的 { temp->next->prior = insert; insert->next = temp->next; insert->prior = temp; temp->next = insert; } } } //printf("%d\t%d\n", insert->id, insert->cardnum); return head; } void swap_id(SWID *sw) { LCARD *temp = sw->head; if (sw->head->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); sw->head->id = sw->inID; return ; } if ((sw->swapcardnum0)cardnum!=sw->swapcardnum)&&(temp->next!=sw->head)) { temp = temp->next; } if (temp->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); temp->id = sw->inID; } } else { while ((temp->cardnum!=sw->swapcardnum)&&(temp->prior!=sw->head)) { temp = temp->prior; } if (temp->cardnum==sw->swapcardnum) { printf("out person cardnum=%d\n", sw->head->id); temp->id = sw->inID; } } } LCARD *mydel(LCARD *head, LCARD *del) { LCARD *temp = NULL; if (head==NULL)//没有链表 { printf("there is no card\n"); } else//有链表 { if(head->next==head)//链表里就有一个节点并且为头结点 { if (head->cardnum==del->cardnum) { free(head); head = NULL; } else { printf("in mydel error\n"); } } else//链表里有超过一个的节点 { temp = head; if (del->cardnum0cardnum!=del->cardnum)&&(temp->next!=head)) { temp = temp->next; } if (temp->cardnum==del->cardnum) { temp->prior->next = temp->next; temp->next->prior = temp->prior; free(temp); } } else//反向删除 { while ((temp->cardnum!=del->cardnum)&&(temp->prior!=head)) { temp = temp->prior; } if (temp->cardnum==del->cardnum) { temp->prior->next = temp->next; temp->next->prior = temp->prior; free(temp); } } } } return head; }
1
用链表法实现josephus,开发工具为C语言。
2022-03-25 02:31:41 1KB josephus,链表
1
用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,
2022-03-25 01:30:00 664KB 约瑟夫问题
1