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