数据结构习题-第2章

合集下载

数据结构课后习题及解析第二章

数据结构课后习题及解析第二章
利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。
例如m的初值为20;n=7,7个人的密码依次是:3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5。
第二章答案
约瑟夫环问题
约瑟夫问题的一种描述为:编号1,2,…,n的n个人按顺时针方向围坐一圈,每个人持有一个密码(正整数)。一开始任选一个报数上限值m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。试设计一个程序,求出出列顺序。利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。
9.假设有一个循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表某个结点的指针,试编写算法在链表中删除指针s所指结点的前趋结点。
10.已知有单链表表示的线性表中含有三类字符的数据元素(如字母字符、数字字符和其它字符),试编写算法来构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。
r=p;
}
}
r->next=L->next;
printf("请输入第一个报数上限值m(m>0):");
scanf("%d",&m);
printf("*****************************************\n");
printf("出列的顺序为:\n");
q=L;
p=L->next;
7.试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1, a2..., an)逆置为(an, an-1,..., a1)。

数据结构--第二章考试题库(含答案)

数据结构--第二章考试题库(含答案)

第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个()的有限序列(n>0)。

【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

【哈尔滨工业大学 2001二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用()存储方式最节省运算时间。

【北京理工大学 2000一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。

数据结构第二章习题(1)

数据结构第二章习题(1)

B. 单链表
C. 双链表
D. 单循环链表
3.具有线性结构的数据结构是( )。
A. 图
B. 树
C. 广义表
D. 栈
4.在一个长度为 n 的顺序表中,在第 i 个元素之前插入一个新元素时,需向后移动( )
个元素。
A. n-i
B. n-i+1
C. n-i-1
5.非空的循环单链表 head 的尾结点 p 满足( )。
A. n-i
B. n-i+1
C. n-i-1
D. i+1
10.线性表是n个( )的有限序列。
A. 表元素
B. 字符 C. 数据元素 D. 数据项
11.从表中任一结点出发,都能扫描整个表的是( )。
A. 单链表
B. 顺序表
C. 循环链表
D. 静态链表
12.在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为( )。
A. q->next=s->next;s->next=p; B. s->next=p;q->next=s->next;
C. p->next=s->next;s->next=q; D. s->next=q;p->next=s->next; 24.在以下的叙述中,正确的是( )。
A. 线性表的顺序存储结构优于链表存储结构 B. 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
A. p->next=p->next->next;
B. p=p->next;p->next=p->next->next;
C. p =p->next;

数据结构习题

数据结构习题

A.找不到
B.查找时间复杂度为O(1)
C.查找时间复杂度为O(n)
D.查找结点的次数约
为n
(14)等概率情况下,在有n个结点的顺序表上做插入结点运算,需平均移动结点的数目
为( )。
A.n
B.(n-1)/2
C. n/2
D.(n+1)
/2
(15)在下列链表中不能从当前结点出发访问到其余各结点的是(
(11)L是线性表,已知LengthList(L)的值是5,经DelList(L,2)运算后,
LengthList(L)的值是( )。
A.2
B.3
C.4
D.5
(12)单链表的示意图如下:
L
ABCDΛ
指向链表Q结点的前趋的指针是(
)。
A.L
B.P
C.Q
D.R
(13)设p为指向单循环链表上某结点的指针,则*p的直接前驱( )。
结点。
(12) 在一个长度为n的顺序表中删除第i个元素,要移动
个元
素。
(13) 在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移 个
元素。
(14) 在无头结点的单链表中,第一个结点的地址存放在头指针中,而其它结点的存储
地址存放在
结点的指针域中。
(15) 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快速度
)。
A.双向链表
B.单循环链表 C.单链表
D.双向循
环链表
(16)在顺序表中,只要知道(
),就可以求出任一结点的存储地址。
A.基地址
B.结点大小
C. 向量大小
D.基地址和结点大小
(17)在双链表中做插入运算的时间复杂度为( )。

数据结构课后习题第2章

数据结构课后习题第2章

2. 指针 P 指向不带头结点的线性链表 L 的首元素的条件是( )。
A.P= =L
C.P-﹥next==L
B.L-﹥Next==P
D.P-﹥next==NULL
3. 指针 p 指向带头结点的单循环链表 L 的首元素的条件是( )。
A.P= =L
C.P-﹥next==L
B.L-﹥Next==P
D.P-﹥next==NULL
网络工程 2011 级 1 班、计算机科学与技术 2011 级 2 班《算法与数据结构》课后习题(第 2 章)
2011 级 计科 (网工)
题号
得分

【课后习题】第 2 章 线性表
班 学号:
一、判断题(如果正确,在题号前打“”,否则打“”。每题 2 分,共 10 分)

( ) 1. 线性表若采用顺序存储表示时所有结点之间的存储单元地址必须连续。 ( ) 2. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。 ( ) 3. 如果某个数据结构的每一个元素都是最多只有一个直接前驱,则必为线性结构。 ( ) 4. 线性表的逻辑顺序与物理顺序总是一致的。 ( ) 5. 线性表的长度是指它所占存储空间的大小。
二、填空题(每空 1.5 分,共 21 分)
1. 从逻辑结构看,线性表是典型的
2. 在一个长度为 n 的向量中在第 i(1≤i≤n+1)个元素之前插入一个元素时,需向后移动
个元素,算法的时间复杂度为
3. 在一个长度为 n 的向量中删除第 i(1≤i≤n)个元素时,需向前移动
算法的时间复杂度为


4. 若长度为 n 的线性表采用链式存储结构,在其第 i 个结点前插入一个新的元素的算法的

数据结构习题及答案 (2)

数据结构习题及答案 (2)

第二章线性表一、选择题1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )(A)110 (B)108(C)100 (D)120参考答案:B2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。

(A)64(B)63 (C)63.5 (D)7参考答案:C3.线性表采用链式存储结构时,其地址()。

(A) 必须是连续的 (B) 部分地址必须是连续的(C) 一定是不连续的 (D) 连续与否均可以参考答案:D4. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()(A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s;(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;参考答案:B5.在一个单链表中,若删除p所指结点的后续结点,则执行()(A)p->next=p->next->next; (B)p=p->next; p->next=p->next->next;(C)p->next=p->next; (D)p =p->next->next;参考答案:A6.下列有关线性表的叙述中,正确的是()(A)线性表中的元素之间隔是线性关系(B)线性表中至少有一个元素(C)线性表中任何一个元素有且仅有一个直接前趋(D)线性表中任何一个元素有且仅有一个直接后继参考答案:A7.线性表是具有n个()的有限序列(n≠0)(A)表元素(B)字符(C)数据元素(D)数据项参考答案:C二、判断题1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。

()2.如果没有提供指针类型的语言,就无法构造链式结构。

()3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。

数据结构第二章作业及答案

数据结构第二章作业及答案

8
解答(续):
(2) 插入操作基本步骤: 1) 若i不合法或表L已满,算法结束并返回 ERROR;否则转2) 2) 将第i个元素及之后的所有元素均后移一个位置 3) 将新元素写入空出的位置; 4) 表长+1
9
解答(续):
插入操作算法(算法2.4 ):
Status ListInsert_Sq(SqList &L, int i , ElemType e) { //在顺序线性表L中第i个位置之前插入新的元素e, // i的合法值为1≤i≤ListLength_Sq(L)+1 if (i<1||i>L.length+1)return ERROR; //i值不合法 if (L.length>=L.listsize) { //当前存储空间已满,重新分配空间 newbase=(ElemType*)realloc(L. elem, (L.listsize+LISTINCREMENT)*sizeof (ElemType)); if (!newbase)exit(OVERFLOW); //存储分配失败 L. elem=newbase; //新基址 L.listsize+=LISTINCREMENT; //增加存储容量 } q=&(L.elem[i-1]); //q为插入位置 for (p=&(L. elem[L.length-1]); p>=q ; --p) *(p+1) = *p; //插入位置及之后的元素右移 *q=e; //插入e ++L.length; //表长增1 return OK; }//ListInsert_Sq
15
4.若某线性表最常用的操作是存取任一指定序号的元素和在最 后进行插入和删除运算,则利用( )存储方式最节省时间。 A.顺序表 B.双向链表 C.带头结点的双向循环链表 1 D.循环链表

数据结构课后习题与解析第二章

数据结构课后习题与解析第二章

第二章习题1. 描述以下三个概念的区别:头指针,头结点,首元素结点。

2. 填空:(1)在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。

(2)在顺序表中,逻辑上相邻的元素,其物理位置相邻。

在单链表中,逻辑上相邻的元素,其物理位置相邻。

(3)在带头结点的非空单链表中,头结点的存储位置由指示,首元素结点的存储位置由指示,除首元素结点外,其它任一元素结点的存储位置由指示。

3.已知L是无表头结点的单链表,且P结点既不是首元素结点,也不是尾元素结点。

按要求从下列语句中选择合适的语句序列。

a. 在P结点后插入S结点的语句序列是:。

b. 在P结点前插入S结点的语句序列是:。

c. 在表首插入S结点的语句序列是:。

d. 在表尾插入S结点的语句序列是:。

供选择的语句有:(1)P->next=S;(2)P->next= P->next->next;(3)P->next= S->next;(4)S->next= P->next;(5)S->next= L;(6)S->next= NULL;(7)Q= P;(8)while(P->next!=Q) P=P->next;(9)while(P->next!=NULL) P=P->next;(10)P= Q;(11)P= L;(12)L= S;(13)L= P;4. 设线性表存于a(1:arrsize)的前elenum个分量中且递增有序。

试写一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。

5. 写一算法,从顺序表中删除自第i个元素开始的k个元素。

6. 已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。

试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值为任意的整数)。

中国农业大学_821数据结构_《数据结构》习题(2)

中国农业大学_821数据结构_《数据结构》习题(2)

第2章线性表一、回答题1. 线性表的两种存储结构各有哪些优缺点?2. 对于线性表的两种存储结构,如果有n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化,线性表的总数也会自动改变,在此情况下,应该选用哪种存储结构,为什么?3. 对于线性表的两种存储结构,如果线性表的总数基本稳定,并且很少进行插入和删除操作,但是要求以最快的速度存取线性表中的元素,那么应该选用哪种存储结构?试说明理由。

二、填空题1. 已知L是无头结点的单链表,且p结点既不是第一个结点,也不是最后一个结点,试从下列提供的语句中选出合适的语句序列:(1) 在p结点之后插入s结点:(2) 在p结点之前插入s结点:(3) 在单链表L首插入s结点:(4) 在单链表L后插入s结点:提供的语句:①p->next = s;② p ->next = p ->next ->next; ③ p ->next = s ->next; ④ s ->next = p ->next; ⑤ s ->next = L; ⑥ s ->next = p; ⑦ s ->next = NULL; ⑧ q = p;⑨ while ( p ->next ! = q ) p = p ->next ; ⑩ while ( p ->next ! = NULL ) p = p ->next ; p = q; p = L; L = s; L = p;2. 已知p 结点是某双向链表的中间结点,试从下列提供的语句中选出合适的语句序列。

(1) 在p 结点之后插入s 结点: (2) 在p 结点之前插入s 结点: (3) 删除p 结点的直接后继结点: (4) 删除p 结点的直接前驱结点:提供的语句:① p ->next = p ->next ->next; ② p ->prior = p ->prior ->prior; ③ p ->next = s; ④ p ->prior = s;11 12 13 14⑤ s ->next = p; ⑥ s ->prior = p; ⑦ s ->next = p ->next; ⑧ s ->prior = p ->prior; ⑨ p ->prior ->next = p ->next; ⑩ p ->prior ->next = p; p ->next ->prior = p; p ->next ->prior = s; p ->prior ->next = s; p ->next ->prior = p ->prior; q = p ->next; q = p ->prior; delete p; delete q;3. 在顺序表中插入或删除一个数据元素,需要平均移动个元素,具体移动的元素个数与有关。

数据结构Java版第二章习题

数据结构Java版第二章习题

(依据自己的状况选作部分习题,不要剽窃)第二章习题次序储存线性表一判断题1.线性表的逻辑次序与储存次序老是一致的。

×2.次序储存的线性表能够按次号随机存取。

√3.次序表的插入和删除操作不需要付出很大的时间代价,由于每次操作均匀只有近一半的元素需要挪动。

×4.线性表中的元素能够是各种各种的,但同一线性表中的数据元素拥有同样的特征,所以是属于同一数据对象。

√5.在线性表的次序储存构造中,逻辑上相邻的两个元素在物理地点上其实不必定紧邻。

×6.在线性表的次序储存构造中,插入和删除时,挪动元素的个数与该元素的地点相关。

√二单项选择题 ( 请从以下 A,B,C,D 选项中选择一项 )1.线性表是 ( A )。

(A)一个有限序列,能够为空;(B)一个有限序列,不可认为空;(C)一个无穷序列,能够为空;(D)一个无序序列,不可认为空。

2.对次序储存的线性表,设其长度为n,在任何地点上插入或删除操作都是等概率的。

插入一个元素时均匀要挪动表中的( A )个元素。

(A) n/2(B) n+1/2(C) n -1/2(D) n三填空题1.在次序表中做插入操作时第一检查___表能否满了 ______________。

四算法设计题1.设线性表寄存在向量A[arrsize]的前elenum个重量中,且递加有序。

试写一算法,将x插入到线性表的适合地点上,以保持线性表的有序性。

而且剖析算法的时间复杂度。

2.已知一次序表A,其元素值非递减有序摆列,编写一个函数删除次序表中剩余的值同样的元素。

3.编写一个函数,从一给定的次序表A 中删除值在 x~y(x<=y) 之间的所有元素,要求以较高的效率来实现。

提示:能够先将序表中所有在 x~y 之的元素置成一个特别的,其实不立刻除它,而后从最后向前挨次描,拥有特别的元素后,移后来面的元素将其除去。

4.性表中有 n 个元素,每个元素是一个字符,存于向量R[n] 中,写一算法,使 R 中的字符按字母字符、数字字符和其余字符的序摆列。

数据结构第二章试题

数据结构第二章试题

第2章线性表一、选择题1.链表不具备的特点是()。

A.可随机访问任意结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比2.不带头结点的单链表head为空的判定条件是()。

==NULLB. head->next==NULL >next==head!=NULL3.带头结点的单链表head为空的判定条件是()。

==NULLB. head->next==NULL >next==head!=NULL4.带头结点的双循环链表L为空表的条件是()。

A.L==NULL B.L->next->==NULL C.L->prior==NULL >next==L5.非空的循环链表head的尾结点(由P所指向)满足()。

A.p->next==NULL B.p==NULL C.p->next==head ==head6.在循环双链表的p所指结点之前插入s所指结点的操作是()。

A.p->prior=s;s->next=p;p->prior->next=s;s->prior=p->prior;B.p->prior=s;p->prior->next=s;s->next=p;s->prior=p->prior;C.s->next=p;s->prior=p->prior;p->prior=s;p->right->next=s;D. s->next=p;s->prior=p->prior;p->prior->next=s;p->prior=s;7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。

A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表8.某线性表最常用的操作是在最后一个结点之后插入一个节点或删除第一个结点,故采用()存储方式最节省运算时间。

数据结构第二章习题(2)

数据结构第二章习题(2)

1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:
(A)存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构
2.一个向量第一个元素的存储地址是 100,每个元素的长度为 2,则第 5 个元素的地址是
(A)110 (B)108
(C)100
(D)120
3.在 n 个结点的顺序表中,算法的时间复杂度是 O(1)的操作是: (A)访问第 i 个结点(1≤i≤n)和求第 i 个结点的直接前驱(2≤i≤n) (B)在第 i 个结点后插入一个新结点(1≤i≤n) (C)删除第 i 个结点(1≤i≤n) (D)将 n 个结点从小到大排序
五、线性表具有两种存储方式,即顺序方式和链接方式。现有一个具有五个元素的线性表
L={23,17,47,05,31},若它以链接方式存储在下列 100~119 号地址空间中,每个结点
由数据(占 2 个字节)和指针(占 2 个字节)组成,如下所示:
05 U 17 X 23 V 31 Y 47 Z
^
^
100
情况下适用于使用链式结构实现。
(A)需经常修改L中的结点值
(B)需不断对L进行删除插入
(C)L中含有大量的结点
(D)L中结点结构复杂
9.单链表的存储密度
(A)大于 1; (B)等于 1; (C)小于 1; (D)不能确定
10.设 a1、a2、a3 为 3 个结点,整数 P0,3,4 代表地址,则如下的链式存储结构称为

二、判断题
( )1. 链表的每个结点中都恰好包含一个指针。
( )2. 链表的物理存储结构具有同链表一样的顺序。
( )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的

数据结构课后练习 - 第2章

数据结构课后练习 - 第2章
2. 线性表的链式存储结构优于顺序存储。(× ) 3. 在单链表中,任何两个元素的存储位置之间都有固定
的联系,所以可以从头结点开始查找任何一个元素。 (×) 4. 顺序存储的线性表可以实现随机存取。(√ )
二、单项选择题
1. 用单链表方式存储的线性表,存储每个结点需要两个域, 一个数据域,另一个是______B。
A. 当前结点所在的地址域
B. 指针域
C. 空指针域
D. 空闲域
2. 在具有n个结点的单链表中,实现__A____的操作,其算法 的时间复杂度都是O(n)。
A. 遍历链表和求链表的第i个结点
B. 在地址为p的结点之后插入一个结点
C. 删除开始结点
D. 删除地址为p的结点的后继结点
二、单项选择题
3. 已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一
学习要点
3. 熟练掌握在顺序存储结构上线性表的基本操作,如查 找、插入和删除的算法。
4. 熟练掌握在各种链表结构中线性表的基本操作,能在 实际应用中选用适当的链表结构。
5. 能够从时间与空间复杂度方面综合比较线性表两种存 储结构的不同特点及其适用场合。
一、判断对错题
1. 线性表中的元素可以是各种各样的,但同一线性表中 的数据元素具有相同的特性,因此属于同一数据对象。 ( )√
• 插入结点:移动元素次数n-i+1; • 删除结点:移动元素次数n-i。 • 决定因素:顺序表的长度以及插入、删除元素在表中
的位序。
4. 分析下述三个算法的具体功能。
ListNode *Demo1(LinkList L, ListNode *p)
{ //L是有头结点的单链表
ListNode *q=L->next;

数据结构第二章习题

数据结构第二章习题

数据结构第二章习题第2章线性表一、单项选择题1.线性表就是具备n个_________的非常有限序列。

a.表元素b.字符c.数据元素d.数据项2.线性表是_________。

a.一个非常有限序列,可以为空b.一个非常有限序列,不可以为空c.一个无穷序列,可以为空d.一个无穷序列,不可以为空3.线性表使用链表存储时,其地址_________。

a.必须是连续的b.一定是不连续的c.部分地址必须是连续的d.连续与否均可以4.链表不具备的特点是_________。

a.可以随机出访任一结点b.填入删掉不须要移动元素c.不必事先估算存储空间d.所须要空间与其长度成正比5.设立线性表存有n个元素,以下操作方式中,_________在顺序单上同时实现比在链表上同时实现效率更高。

a.输出第i(1≤i≤n)个元素值b.互换第1个元素与第2个元素的值c.顺序输入这n个元素的值d.输出与给定值x相等的元素在线性表中的序号6.设立线性表中存有2n个元素,以下操作方式中,_________在单链单上同时实现Obrero在顺序单上同时实现效率更高。

a.删掉选定的元素b.在最后一个元素的后面插入一个新元素c.顺序输出前k个元素d.互换第i个元素和第2n-i-1个元素的值(i=0,1…,n-1)7.如果最常用的操作是取第i个结点及其前驱,则采用_________存储方式最节省时间。

a.单链表中b.双链表中c.单循环链表d.顺序表8.与单链表相比,双链表的优点之一是_________。

a.填入和删掉操作方式更直观b.可以展开随机出访c.可以省略字段指针或表尾指针d.出访前后相连结点更有效率9.率先垂范结点的单链表中l为觑的认定条件就是_________。

a.l==nullb.l->next==nullc.l->next==ld.l!=null10.在一个具备n个结点的有序单链表填入一个崭新结点并仍然维持有序的时间复杂度就是_________。

数据结构1-2章习题

数据结构1-2章习题
10
• 2.2
(1) 在顺序表中插入或删除一个元素,平 均需要移动一半的元素,具体移动个数 与表长和插入或删除操作的位置有关。 (2) 顺序表中逻辑上相邻的元素的物理位 置一定紧邻。单链表中逻辑上相邻的元 素物理位置不一定紧邻。
11
• 2.2
(3) 在单链表中,除了首元结点外,任一 结点存储位置由前驱结点的指针域指示。 (4) 在单链表中设置头结点的作用是统一 处理首元结点的插入删除操作。
4
d8
ห้องสมุดไป่ตู้
d9
d1
d3
d7
d2
d4
d5
d6
5
2. 试仿照三元组的抽象数据类型写出复 数的抽象数据类型定义
复数相关操作包括: 获取实部 获取虚部 加减乘除计算
6
ADT Complex { 数据对象:D={r,i|r,i∈R} 数据关系:S={<r,i>} 基本操作:
InitComplex(&C, r, i)
数据结构
第一章习题讲解
1
1. 设有数据结构(D, R),其中:
D = {d1,d2,d3,d4} R = {r} r = {(d1,d2),(d2,d3),(d3,d4)} 试画出该数据结构的逻辑结构图
2
• 逻辑结构:表现数据元素间的逻辑关系
{(d1,d2),(d2,d3),(d3,d4)} 用圆圈表示数据元素,圆圈之间的连线表 示数据元素之间的关系
L
P
QR
S
25738
64
14
L
P
QR
S
25738
(1)
P
QL R
S
25738
(2)

数据结构练习题 第二章 线性表 习题及答案

数据结构练习题 第二章  线性表 习题及答案
{ p=head;j=0;
while(________________)
{ p=p->next; j++; }
if(i==j) return(p);
else return(NULL);
}
26.以下为单链表的定位运算,分析算法,请在____处填上正确的语句。
int locate_lklist(lklist head,datatype x)
if(________)return(i);
else return(0);
}
15.对于顺序表的定位算法,若以取结点值与参数X的比较为标准操作,平均时间复杂性量级为________。求表长和读表元算法的时间复杂性为________。
16.在顺序表上,求表长运算LENGTH(L)可通过输出________实现,读表元运算
36.当且仅当两个串的______相等并且各个对应位置上的字符都______时,这两个串相等。一个串中任意个连续字符组成的序列称为该串的______串,该串称为它所有子串的______串。
37.串的顺序存储有两种方法:一种是每个单元只存一个字符,称为______格式,另一种是每个单元存放多个字符,称为______格式。
2.为了满足运算的封闭性,通常允许一种逻辑结构出现不含任何结点的情况。不含任何结点的线性结构记为______或______。
3.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.
① 数据元素 ② 数据项 ③ 数据 ④ 数据结构
4.顺序表是线性表的 ( )
①链式存储结构 ②顺序存储结构 ③ 索引存储结构 ④ 散列存储结构

数据结构第2章基础习题-作业

数据结构第2章基础习题-作业

第二章习题一判断题1.线性表的逻辑顺序与存储顺序总是一致的。

×2.顺序存储的线性表可以按序号随机存取。

3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。

×4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。

5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。

×6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。

7.线性表的链式存储结构优于顺序存储结构。

8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。

×9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。

10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。

×11.线性表中每个元素都有一个直接前驱和一个直接后继。

(×)12.线性表中所有元素的排列顺序必须由小到大或由小到小。

(×)13.静态链表的存储空间在可以改变大小。

(×)14.静态链表既有顺序存储结构的优点,又有动态链表的优点。

所以它存取表中第i个元素的时间与i无关。

(×)15.静态链表中能容纳元素个数的最大数在定义时就确定了,以后不能增加。

()16.静态链表与动态链表的插入、删除操作类似,不需要做元素的移动。

()17.线性表的顺序存储结构优于链式结构。

(×)18.在循环单链表中,从表中任一结点出发都可以通过前后的移动操作扫描整个循环链表。

(×)19.在单链表中,可以从头结点开始查找任何一个结点。

()20.在双链表中,可以从任何一结点开始沿同一方向查找到任何其他结点。

(×)二单选题 (请从下列A,B,C,D选项中选择一项)1.线性表是( ) 。

(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。

《数据结构》习题集:第2章_线性表

《数据结构》习题集:第2章_线性表

第2章线性表一、选择题1.表长为N 的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为(E ),删除一个元素需要移动的元素个数为(A )。

A. (N-1)/2B. NC. N+1D. N-1E. N/2F. (N+1)/2G. (N-2)/22.线性表是具有N 个(C )的有限序列。

A、表元素B、字符C、数据元素D、数据项E、信息3.“线性表的逻辑顺序和物理顺序总是一致的。

”这个结论是(B )。

A、正确的B、错误的C、不一定,与具体结构有关。

4.线性表采用链式存储结构时,要求内存中可用存储单元的地址(D )。

A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续或不连续都可以。

5.带头结点的单链表为空的判定条件是(B )。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL6.不带头结点的单链表head 为空的判定条件是(A )。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL7.非空的循环单链表head 的尾结点P 满足( C )。

A、P->NEXT=NULLB、p=NULLC、p->next==headD、p==head8.在一个具有n 个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(B )。

A、O(1)B、O(n)C、O(n2)D、O(nlog2n)9.在一个单链表中,若删除P 所指结点的后继结点,则执行( A )。

A、p->next=p->next->nextB、p=p->next;p->next=p->next->nextC、p->next=p->next;D、p=p->next->next;10.在一个单链表中,若在P所指结点之后插入S所指结点,则执行(B )。

数据结构(C语言版)习题及答案第二章

数据结构(C语言版)习题及答案第二章

数据结构(C语⾔版)习题及答案第⼆章习题2.1选择题1、线性表的顺序存储结构是⼀种(A)的存储结构,线性表的链式存储结构是⼀种(B)的存储结构。

A、随机存取B、顺序存取C、索引存取D、散列存取2、对于⼀个线性,既要求能够进⾏较快的插⼊和删除,⼜要求存储结构能够反映数据元素之间的逻辑关系,则应该选择(B)。

A、顺序存储⽅式B、链式存储⽅式C、散列存储⽅式D、索引存储⽅式3、已知,L是⼀个不带头结点的单链表,p指向其中的⼀个结点,选择合适的语句实现在p结点的后⾯插⼊s结点的操作(B)。

A、p->next=s ; s->next=p->next ;B、s->next=p->next ; p->next=s ;C、p->next=s ; s->next=p ;D、s->next=p ; p->next=s ;4、单链表中各结点之间的地址( C D)。

A、必须连续B、部分地址必须连续C、不⼀定连续D、连续与否都可以5、在⼀个长度为n的顺序表中向第i个元素(0A、n-iB、n-i+1C、n-i-1D、i2.2填空题1、顺序存储的长度为n的线性表,在任何位置上插⼊和删除操作的时间复杂度基本上都⼀样。

插⼊⼀个元素⼤约移动表中的(n/2)个元素,删除⼀个元素时⼤约移动表中的((n-1)/2)个元素。

2、在线性表的顺序存储⽅式中,元素之间的逻辑关系是通过(物理顺序)来体现的;在链式存储⽅式,元素之间的逻辑关系是通过(指针)体现的。

3、对于⼀个长度为n的单链表,在已知的p结点后⾯插⼊⼀个新结点的时间复杂度为(o(1)),在p结点之前插⼊⼀个新结点的时间复杂度为(o(n)),在给定值为e的结点之后插⼊⼀个新结点的时间复杂度为(o(n))。

4、在双向链表中,每个结点包含两个指针域,⼀个指向(前驱)结点,另⼀个指向(后继)结点。

5、对于循环链表来讲,逐个访问各个结点的结束判断条件是(设P为指向结点的指针,L为链表的头指针,则p->next= =L)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章线性结构
一、选择题
1. 顺序存储结构的优点是()
A.存储密度大 B.插入运算方便
C.删除运算方便 D.可用于各种逻辑结构的存储表示
2. 下面关于线性表的叙述中,错误的是()
A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个()的有限序列(n>0)。

A.表元素 B.字符 C.数据元素 D.数据项
4.若某线性表最常用的操作是存取任一指定序号的元素和在线性表的最后进行插入和删除元素,则利用()存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5. 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则
采用()存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表
C.双向链表D.仅有尾指针的单循环链表
6. 对于一个头指针为head的带头结点的单链表,判定该链表为空表的条件是()。

A.head==NULL B.head→next==NULL
C.head→next==head D.head!=NULL
7. 链表不具有的特点是()
A.插入、删除不需要移动元素 B.可随机访问任一元素
C.不必事先估计存储空间 D.所需空间与链表长度成正比
8. 下面的叙述正确的是()
A.线性表在链式存储时,查找第i个元素的时间同i的值成正比
B. 线性表在链式存储时,查找第i个元素的时间同i的值无关
C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比
D. 线性表在顺序存储时,查找第i个元素的时间同该元素的大小有关
9. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度分别为()。

A.O(n),O(n) B. O(n),O(1) C. O(1),O(n) D. O(1),O(1)
10.非空的循环单链表head的指向尾结点的指针变量p满足()。

A.p->link=head B.p->link=NULL C.p=NULL D.p=head
11. 若长度为n的线性表采用顺序存储结构,在第i个位置插入一个元素的算法的时间复杂度为()(1<=i<=n+1)。

A. O(0)
B. O(1)
C. O(n)
D. O(n2)
12.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是()。

A.p->next=s; s->next=p->next; B. s->next=p->next; p->next=s; C.p->next=s; p->next=s->next; D. p->next=s->next; p->next=s;
13. 利用双向链表作线性表的存储结构的优点是()。

A. 便于插入和删除操作
B. 提高按关系查找数据元素的速度
C. 节省存储空间
D. 便于销毁结构,释放存储空间
14. 若长度为n的非空顺序表,在表的第i个位置插入一个新元素,i的合法值是()。

A. 1≤i≤n
B.1≤i≤n+1
C. 0≤i≤n-1
D. 0≤i≤n
15.已知L是带头结点的单链表,则删除首元结点的语句是()。

A. L=L->next;
B. L->next=L;
C. L=L->next->next;
D. L->next=L->next->next;
16. 已知单链表A的长度为m,单链表B的长度为n,若将B链接在A的末尾,在没有尾指针的情况下,算法的时间复杂度为()。

A. O(1)
B. O(n)
C. O(m)
D. O(m+n)
* 17.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表
B.单循环链表
C. 带尾指针的单循环链表
D.带头结点的双循环链表
二、填空题
1. 在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动_ ___个元素。

2. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用____ _存储结构。

3. 对于一个有n个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为__ ____。

4.根据链式存储结构中每一个结点包含的指针个数,可以将线性链表分成_ __和多重链表。

5.链接存储的特点是利用__ _来表示数据元素之间的逻辑关系。

6. 顺序存储结构是通过_ __表示元素之间的关系的;链式存储结构是通过_______表示元素之间的关系的。

7. 循环单链表的最大优点是:__ ___。

8. 带头结点的单循环链表L,L为空表的条件是:__ ___。

三、判断题
1. 对任何数据结构链式存储结构一定优于顺序存储结构。

( )
2. 线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。

( )
3. 顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。

( )
4. 所谓静态链表就是一直不发生变化的链表。

( )
5. 线性表的特点是每个元素都有一个前驱和一个后继。

( )
6. 取线性表的第i个元素的时间同i的大小有关。

( )
7. 线性表只能用顺序存储结构实现。

( )
8. 顺序存储结构的主要缺点是不利于插入或删除操作。

( )
四、简答题
1. 对于线性表中的插入操作,分别写出在顺序存储结构下和链式存储结构下的时间复杂度。

2. 线性结构的特点是什么?
3.说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首元结点的关系。

4. 在单链表和双向链表中,能否从当前结点出发访问到任何一个结点?
*5. 顺序表在插入或删除元素时一般需要移动元素,如果想不移动多个元素就实现插入和删除,应该如何处理?
五、算法题
1、利用线性表的基本操作(见教材P19),实现在线性表A中删除在线性表B中出现的元素。

2、编写算法,将一个有n个非零元素的线性表A拆分成两个线性表,其中大于零的元素存放线性表B中,小于零的元素存放在线性表C中。

3、分别基于线性表的顺序存储结构和链式存储结构(带头结点),实现以下操作:
(1) 从线性表中删除具有给定值x的所有元素。

(2) 从线性表中删除其值在有给定值s与t之间的所有元素,其中要求s<=t ,若s或t 不合理,或线性表为空,则显示出错信息并退出程序。

(3) 假设线性表的元素按递增顺序排列,删除表中所有大于s且小于t的所有元素(若存在这样的元素),其中要求s<=t ,若s或t不合理,或线性表为空,则显示出错信息并退出程序。

(4) 假设线性表的元素按递增顺序排列,删除表中所有值重复的元素,即使表中无重复元素,例如:A={ 1, 3, 5, 5, 8, 9, 9, 12},删除后A={ 1, 3, 5, 8, 9, 12}
*4、设有一个不带头结点的单链表,编写递归算法实现以下操作:
(1) 求链表中的结点个数
(2) 求链表中的最大整数(设链表结点的数据域中存放的是整型数据)。

相关文档
最新文档