
链表
yun_oyun
这个作者很懒,什么都没留下…
展开
-
【C语言】循环链表解决约瑟夫环问题
约瑟夫环是个经典的问题。有M个人围坐成一圈,编号依次从1开始递增,现从编号为1的人开始报数,报到N的人出列,然后再从下一人开始重新报数,报到N的人出列;重复这一过程,直至所有人出列。求出列次序。本题要求用循环单链表实现。提示:开始时将循环单链表的指针变量设为空,设计实现尾部添加一人函数Append,添加第1人时,将结点的指针域指向自己,后面新添加人员时,在循环单链表指针变量所指尾部后添加新结点,并始终将循环单链表指针变量指向新添加结点,对应M个人的循环单链表中有M个结点;报数时,报到指定数后输出对应结点里.原创 2022-03-08 20:40:10 · 5350 阅读 · 0 评论 -
【C语言】单向链表排序、合并、逆序、分离(链表的头节点不储存数据)
编写程序,在第1题(第1题:编写程序,建立2个带头结点单链表,输入若干整数将正整数插入第1个单链表,将负整数插入第2个单链表,插入前和插入后单链表保持递增或相等次序,显示2个单链表,最后销毁。程序不可存在内存泄漏。)基础上合并2个单链表,合并前后单链表保持递增或相等次序,显示合并前后单链表。注意不可存在内存泄漏。 ...原创 2022-03-08 14:11:21 · 1908 阅读 · 0 评论 -
男女会籍注册(指针数组+链表+二级指针)
编写以下函数实现: (1)doregister(n, arr), 从控制台输入n个会员信息,按性别存储两个链表(名字升序排序),每个链表的头节点存入指针数组arr中; (2)unregister(arr, phone),输入一个电话号码,查找并注销会籍(从对应链表中删除节点); 主函数调用上述函数,完成功能测试。 样例:">输入样例: 第一行输入会籍数量;然后每行输入会籍信息;最后一行输入要注销会籍的电话号码; 5 lili 13455667788 1 haos 13555667788原创 2021-12-30 01:30:27 · 796 阅读 · 0 评论 -
男女生有序链表创建和合并(比较规则由函数指针给出)(函数指针)
(1)编写create(n)函数,从控制台输入n个学生信息,根据性别存储为男生、女生两个链表,每个链表中的节点按照给定规则(由函数指针给出)(年龄)升序排序的; (2)编写merge()函数,将两个链表合并形成一个新链表,仍保持有序排序。 输入样例: 每行输入一个学生信息:姓名、性别和年龄。其中姓名长度小于20个字符;性别=1表示男生,=2表示女生; 8 liming 1 28 haoshu 2 27 zhaomo 1 26 zhanli 2 25 maomin 1 24 chenzi 2 23原创 2021-12-19 20:57:11 · 455 阅读 · 0 评论 -
男女生链表创建和合并
(1)编写create(n)函数,从控制台输入n个学生信息,根据性别存储为男生、女生两个链表,每个链表中的学生是按姓名升序排序的; (2)编写merge()函数,将两个链表合并形成一个新链表,仍保持按姓名升序排序。 输入样例: 第一行输入学生数量;第二行开始,每行输入学生信息:姓名、性别和年龄。姓名长度小于20个字符;性别=1表示男生,=2表示女生; 8 liming 1 28 haoshu 2 27 zhaomo 1 26 zhanli 2 25 maomin 1 24 chenzi 2 23原创 2021-12-19 20:07:50 · 701 阅读 · 1 评论 -
书籍录入(链表有序插入)
图书店营业员要通过程序录入书籍信息, 包括录入书籍名称、价格;当输入的书籍名称是"##"时,表示结束录入。 现要求使用链表编程,编写函数insert(),将营业员输入的所有书籍插入到链表中,要求插入链表时按书名字典序升序排序; 输入样例: cprogramming 29 c++programm 89 visualbasic 28 software 32 testing 827 ## 78 输出样例: c++programm 89.00 cprogramming 29.00 software 3原创 2021-12-17 09:38:55 · 640 阅读 · 0 评论 -
链表逆序(拷贝和插入)
主函数定义一个链表,储存控制台输入的n个整数;然后编写函数: 1.create函数,储存信息 2.reverse(head),将链表逆序,即原链表的头节点成为新链表的尾节点;原链表的尾节点成为新链表的头节点; 3.print函数,打印信息 输入样例: 5 1 2 3 4 5 输出样例: 1 2 3 4 5 5 4 3 2 1 代码如下: 方法一:创建一个新链表,先将旧链表的 head 作为新链表的 phead ,再将旧链表的 head 后移,依次将后一个 head 作为新链表的.原创 2021-12-14 16:18:32 · 1191 阅读 · 0 评论 -
链表插入节点(C)
编写下列函数: (1)create(n):创建并返回链表,链表包含n个节点,每个节点存储一个整数;n个整数由控制台按升序输入。函数返回创建的链表 (2)find(head,num):从链表中查找整数v,若存在,则删除num节点并返回链表;若num不存在,则将num插入到链表中,仍保持链表中节点的整数值按升序排序。 (3)print(head) 输入样例1: (1)第1行输入n (2)第2行按升序输入n个整数,空格隔开 (3)第3行输入要查找(或插入)的整数 10 1 3 5 7 9 11原创 2021-12-13 22:46:25 · 1644 阅读 · 0 评论 -
学生链表创建、遍历和删除(C)
定义恰当的结构体,并编程实现下列函数,main()函数将调用这些函数,实现学生链表的创建、打印和删除节点的功能; (1)create(n),从控制台输入n个学生的信息,建立链表存储这些信息,返回链表的头节点指针;学生信息包括:学号(字符串,少于20分字符)、姓名(字符串,少于10个字符)、性别(0表示女生、1表示男生)、年龄。 (2)pdelete(head,age),从head指向的链表搜索学生信息,当学生的年龄等于age时,将该节点删除;返回链表的头节点指针; (3)print(head),输出删原创 2021-12-13 20:03:33 · 1596 阅读 · 0 评论