编写个函数从单链表的构造函数A中删除自第i个元素起共LEN购入元素,然后将他们插入到单链表的构造函数B的第j元素前

1、一算法,反复找出单链表L中的最小值,并输出,然后再从表中删除,直到表空为止。(15分)
2、设指针La和Lb分别为两个带头结点的单链表的头指针,编写算法实现从单链表La中删除自第i 个数据元素起,共Len个数据元素、并把它们插入到单链表Lb中第j 个数据元素之前。(15分)
3、设A和B是两个单链表,其表中元素递增有序。试编写一算法将A和B合并为一个按元素递增有序的单链表C,并要求辅助空间为O(1)。(20分)
4、设字符数组b中存放着后缀表达式“ABCD/-E*+#”,编写利用堆栈完成后缀表达式计算的算法。其中字符‘#’号为后缀表达式的
1、一算法,反复找出单链表L中的最小值,并输出,然后再从表中删除,直到表空为止。(15分)
2、设指针La和Lb分别为两个带头结点的单链表的头指针,编写算法实现从单链表La中删除自第i 个数据元素起,共Len个数据元素、并把它们插入到单链表Lb中第j 个数据元素之前。(15分)
3、设A和B是两个单链表,其表中元素递增有序。试编写一算法将A和B合并为一个按元素递增有序的单链表C,并要求辅助空间为O(1)。(20分)
4、设字符数组b中存放着后缀表达式“ABCD/-E*+#”,编写利用堆栈完成后缀表达式计算的算法。其中字符‘#’号为后缀表达式的结束标志。(25分)
5、稀疏矩阵只存放其非零元素的行号、列号和数值,用一维数组顺序存放之,行号“-1”作为结束标志,试编写两个稀疏设矩阵相加的算法。(25分)
提示:可以利用两个数组A和B来存放两个稀疏矩阵,数组C用来存放两个稀疏矩阵相加的和。
是不是提问分类有问题啊!我是无能为力.推荐一地址吧!希望能对你有帮助.
数据结构一般都和算法联系在一起的。
先选好你所用的语言。任一种你掌握的,然后用该语言的代码实现就可以了。你可以这样考虑,该程序输入是什么,期望的输出是什么,然后对照自己实际完成的代码。现在有很有数据结构实现的书籍,可以找来参考下。
gcc编译通过,有问题可以来我空间联系我
单1,漂亮!!!!
就凭这个单1,就是高手,不服都不行。
现在的AC米兰就想拜仁了
没人会信了
答: 都会自己拿了太厉害了我儿子都不肯自己抓东西
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区导读:第二课线性表,2.下列关于线性表的叙述中,A.线性表采用顺序存储,B.线性表采用顺序存储,C.线性表采用链接存储,D.线性表采用链接存储,3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,4.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,C.不必事先估计存储空间D.所需空间与线性长度成正比,11.若长度为n的线性表采用顺序存储结构,12.对
第二课 线性表
1.下列属顺序存储结构优点的是(
A.存储密度大
B.插入运算方便
C.删除运算方便
D.可方便地用于各种逻辑结构的存储表示
2.下列关于线性表的叙述中,错误的是(
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(
)存储方式最节省时间。
C.带头结点的双循环链表
D.单循环链表
4.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(
)存储方式最节省运算时间。
B.仅有头指针的单循环链表
D.仅有尾指针的单循环链表
5.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(
)最节省时间。
B.单循环链表
C.带尾指针的单循环链表
D.带头结点的双循环链表
6.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用(
)存储方式最节省运算时间。
C.单循环链表
D.带头结点的双循环链表
7.静态链表中指针表示的是(
A.下一元素的地址
B.内存储器的地址
C.下一元素在数组中的位置
D.左链或右链指向的元素的地址
8.链表不具有的特点是(
A.插入、删除不需要移动元素
B.可随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比
9.双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求删去p所指结点,则正确的删除是(
)(链中结点数大于2,p不是第一个结点)。
A.p-&llink-&rlink=p-&
p-&llink-&rlink=p-&
B.free (p);
p-&llink-&rlink=p-&
p-&llink-&rlink=p-&
C.p-&llink-&rlink=p-&
p-&llink-&rlink=p-&
D.以上A,B,C都不对。
10.下列说法错误的是(
⑴静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。 ⑵静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
⑶静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
C.⑴、⑵和⑶
11.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(
)(1&=i&=n+1)。
12.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为(
D.O(1) O(1)
13.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为(
14.在一个以 h 为头的单循环链中,p 指针指向链尾的条件是(
A.p-&next=h
B.p-&next=NULL
C.p-&next-&next=h
D.p-&data=-1
15.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为(
A.p-&llink=q;
q-&rlink=p;
p-&llink-&rlink=q;
q-&llink=p-&
B.q-&llink=p-&
p-&llink-&rlink=q;
q-&rlink=p;
p-&llink=q-&
C.q-&rlink=p;
p-&rlink=q;
p-&llink-&rlink=q;
q-&rlink=p;
D.p-&llink-&rlink=q;
q-&rlink=p;
q-&llink=p-&
p-&llink=q;
16.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(
A.head==NULL
B.head→next==NULL
C.head→next==head
D.head!=NULL
二、应用题
1.有线性表(a1,a2,…,an),采用单链表存储,头指针为H,每个结点中存放线性表中一个元素,现查找某个元素值等于X的结点。分别写出下面三种情况的查找语句,要求时间尽量少。⑴线性表中元素无序。⑵线性表中元素按递增有序。⑶线性表中元素按递减有序。
2.按照下列题目中的算法功能说明,将算法描述片段中的错误改正过来。
⑴下面的算法描述片段用于在双链表中删除指针变量p所指的结点:
p-&next=p-&prior-&
p-& prior =p-& next -&
⑵下面的算法描述片段用于在双链表中指针变量p所指结点后插入一个新结点:
q=(dlinklist *)malloc(sizeof(dlinklist));
q-& prior =p;
p-& next =q;
q-& next =p-&
q = p-& next -&
3.一线性表存储在带头结点的双向循环链表中,L为头指针。如下算法:
void unknown
(Dlinklist *L)
p=L-& q=p-& r=q-&next;
while (q!=L)
{ while (p!=L) && (p-&data&q-&data)
p=p-&prior;
q-&prior-&next=r;
① ______;
q-&next=p-&
q-&prior=p;
② ______;
③ ______;
④ ______;
⑴说明该算法的功能。
⑵在空缺处填写相应的语句。
4.设单链表L带头结点且非空,指针变量p指向L中的一个结点,且该结点既不是L中的第一个结点,也不是L中的最后一个结点,指针变量s指向一个待插入L的新结点。试选择合适的语句序列,完成下列操作。
⑴在p所指结点之前插入s所指结点;
⑵在L中最后一个结点之后插入s所指结点;
⑶删除p所指结点的直接后继;
⑷删除L中第一个结点。
三、算法设计题
1.顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。试给出一种高效算法,将LB中元素合到LA中,使新的LA的元素仍保持非递减有序。高效指最大限度的避免移动元素。
2.试写一算法,对单链表实现就地逆置。
3.设有循环链表如下,设计算法将链表中指针方向取反。
4.假设有两个按元素值递增次序排列的带头结点的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
5.已知非空线性链表由list指出,链结点的构造为(data,next)。请写一算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点。
6.已知两个单链表A和B,其头指针分别为heada和headb,编写一个过程从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个元素之前。
7.已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)
8.在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。例如:(7,10,10,21,30,42,42,42,51,70)将变作(7,10,21,30,42,51,70),分析算法的时间复杂度。
9.设键盘输入n个英语单词,输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数,试编一程序,建立一个单向链表,实现:⑴如果单词重复出现,则只在链表上保留一个。⑵除满足⑴的要求外。链表结点还应有一个计数域,记录该单词重复出现的次数,然后输出出现次数最多的前k(k&=n)个单词。
10.设有一个双向循环链表L,表中结点除有prior、data和next域外,还有一个访问频度域freq。在链表被起用之前,freq域的值均初始化为零。每当对链表进行一次LOCATE(L,x)操作,被访问结点的freq域的值便增1,同时调整链表中结点间的次序,使其按访问频度非递增的顺序排列,以便被频繁访问的结点总是靠近表头结点。试设计符合上述要求的LOCATE操作算法。
包含总结汇报、专业文献、应用文书、资格考试、考试资料、word文档、教学教材、IT计算机、文档下载、教学研究、人文社科以及第2章 线性表等内容。
相关内容搜索}

我要回帖

更多关于 单链表的构造函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信