链表初级
链表非常初级的题目
Orange&1024
头秃
展开
-
10.一元多项式的加/减法运算
问题描述 :假设2个稀疏一元多项式分别由带头结点的有序单链表A和B存储(指数项递增有序)。现要求设计一个算法,实现稀疏一元多项式的加减法计算。要求使用A和B的原存储空间(运算后B不再存在,A链表中保存结果多项式)。输入中的单链表的长度不得在计算算法中利用,仅作为建表使用。注意:加/减法计算后,如某一项的结果系数为0,则该项要从多项式链表中删除。输入说明 :第一行:加/减法选择(0:加法 1:减法)第二行:一元多项式A的项数第三行:一元多项式A的各项的系数(系数之间以空格分隔)第四行:一元多项原创 2020-09-09 11:16:43 · 1513 阅读 · 0 评论 -
8.圆桌问题
问题描述 :圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。输入说明 :输入:好人和坏人的人数n(<=32767)、步长m(<=50);输出说明 :输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行。输入范例 :52原创 2020-09-09 10:22:39 · 356 阅读 · 0 评论 -
7.求有序序列的交集(链表)
问题描述 :使用带头结点的单链表编程:有两个有序序列,分别表示两个集合。求它们的交集并输出。注意:这里要利用到“有序”的特性。输入说明 :第一行输入序列A的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据第一行输入序列B的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据注:两个序列输入时保证有序输出说明 :输出交集的元素序列,输出格式见范例。如果交集为空,则输出“he原创 2020-09-09 09:59:15 · 369 阅读 · 0 评论 -
6.求序列的交集(链表)
问题描述 :使用带头结点的单链表编程:有两个序列,分别表示两个集合。求它们的交集并输出。输入说明 :第一行输入序列A的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据第一行输入序列B的信息:第一个整数n(0<=n<=100),表示共有n个元素,其后有n个整数,表示n个元素的数据输出说明 :输出交集的元素序列,输出格式见范例。如果交集为空,则输出“head–>tail”交集里的元素顺序,依照其在序列A中的顺序。原创 2020-09-09 09:33:34 · 291 阅读 · 0 评论 -
5.悲剧文本
问题描述 :你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自动按下。你并不知道键盘存在这一问题,而是专心地输入英文单词,甚至连显示器都没瞧一眼。当你看显示器时,展现在你面前的是一段悲剧的文本。你的任务是计算这段文本有几个单词。输入包含多组数据。每组数据占一行,包含不超过20000个英文字母、空格、字符“[”或者“]”(这多达20000个字符的数据会显示在一行,不用担心会换行)。其中字符“[”表示Home键(将光标定位到一行的开头),“]”表示End键(将光标定位到原创 2020-09-09 09:15:21 · 427 阅读 · 0 评论 -
4.集合的操作
问题描述 :输入A、B、C、D四个集合(集合中无重复元素,且元素值都大于0),分别存储在不带头结点的链表中。本程序先将四个集合执行以下操作:1.对A、B、C、D分别进行升序排序;(该功能已实现,见函数sort)。2.做A=A+B操作:先执行两个有序链表A和B的合并,并仍然保持有序,结果存储在A中,然后删除重复元素;(该功能已实现,见函数merge和purge)。3.做A=A-C操作:将C中出现的元素从A中删除;(该功能已实现,见函数subtract)。4.对D中出现的元素,逐一到A中查询:如果原创 2020-09-08 23:06:46 · 375 阅读 · 0 评论 -
3.删除链表第index个结点
问题描述 :输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。在输入一个位置index,从链表中删除第index个结点,输出结果链表。请编写deleteNode函数,完成删除操作。deleteNode函数的原型如下:struct student *deleteNode(struct student *head,int index)形参:struct student *head:链表的头指针,需要从这个链表中删除int index:从链表中删除第index个结点。index从1开原创 2020-09-08 22:02:19 · 206 阅读 · 0 评论 -
2.在链表指定位置插入结点
问题描述 :输入若干(不超过100个)非负整数,创建一个不带头结点的单向链表。再输入一个位置index以及一个数据data,程序中首先创建一个新结点s,s的数据成员为data,然后调用函数insertNode将s插入到链表的指定位置index处,最后输出结果链表。请编写insertNode函数,完成插入操作。insertNode函数的原型如下:struct student *insertNode(struct student *head, struct student *s, int index)原创 2020-09-08 21:49:36 · 656 阅读 · 0 评论 -
1.查找序列元素
问题描述 :使用带头结点的单链表编程:一群学生排成一行,输入一个学号,请确定该学号学生所在的位置。输入说明 :第一行输入学生信息:第一个整数n(0<=n<=100),表示共有n个学生,其后有n个整数,表示n个学生的学号第二行及以后各行,每行输入一个整数,表示要查找的学生学号。输出说明 :对于每个要查找的学号,输出一个整数,表示要查找学生的位置。如果共有n个学生,则位置序号为1~n。如果学生不存在,输出“no”,不包括双引号。每个输出占一行。输入范例 :12 50 51 5原创 2020-09-08 21:25:04 · 232 阅读 · 0 评论