(完整word版)《数据结构》第二章线性表习题

合集下载

数据结构习题及答案 (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.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。

(完整word版)数据结构单元2练习参考答案

(完整word版)数据结构单元2练习参考答案

单元练习2一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(×)(1)线性表的链式存储结构优于顺序存储。

(×)(2)链表的每个结点都恰好包含一个指针域。

(√)(3)在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。

(×)(4)顺序存储方式的优点是存储密度大,插入、删除效率高。

(×)(5)线性链表的删除算法简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

(×)(6)顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

(√)(7)线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。

(√)(8)线性表采用顺序存储,必须占用一片连续的存储单元。

(×)(9)顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

(ㄨ)(10)插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。

二.填空题(1)顺序表中逻辑上相邻的元素在物理位置上必须相连。

(2)线性表中结点的集合是有限的,结点间的关系是一对一关系。

(3)顺序表相对于链表的优点是:节省存储和随机存取。

(4)链表相对于顺序表的优点是:插入、删除方便。

(5)采用顺序存储结构的线性表叫顺序表。

(6)顺序表中访问任意一个结点的时间复杂度均为O(1)。

(7)链表相对于顺序表的优点是插入、删除方便;缺点是存储密度小。

(8)在双链表中要删除已知结点*P,其时间复杂度为O(1)。

(9)在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前趋结点的地址,其查找的时间复杂度为 O(n) 。

(10)单链表中需知道头指针才能遍历整个链表。

(11)线性表中第一个结点没有直接前趋,称为开始结点。

(12)在一个长度为n的顺序表中删除第i个元素,要移动n-i 个元素。

(13)在一个长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移n- i +1 个元素。

数据结构课后习题答案第二章 线性表

数据结构课后习题答案第二章   线性表

第二章线性表2.1描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。

并说明头指针和头结点的作用。

答:头指针是一个指针变量,里面存放的是链表中首结点的地址,并以此来标识一个链表。

如链表H,链表L等,表示链表中第一个结点的地址存放在H、L中。

头结点是附加在第一个元素结点之前的一个结点,头指针指向头结点。

当该链表表示一个非空的线性表时,头结点的指针域指向第一个元素结点,为空表时,该指针域为空。

开始结点指第一个元素结点。

头指针的作用是用来惟一标识一个单链表。

头结点的作用有两个:一是使得对空表和非空表的处理得以统一。

二是使得在链表的第一个位置上的操作和在其他位置上的操作一致,无需特殊处理。

2.2填空题1、在顺序表中插入或删除一个元素,需要平均移动(表中一半)元素,具体移动的元素个数与(表长和该元素在表中的位置)有关。

2、顺序表中逻辑上相邻的元素的物理位置(必定)相邻。

单链表中逻辑上相邻的元素的物理位置(不一定)相邻。

3、在单链表中,除了首元结点外,任一结点的存储位置由(其直接前驱结点的链域的值)指示。

4、在单链表中设置头结点的作用是(插入和删除元素不必进行特殊处理)。

2.3何时选用顺序表、何时选用链表作为线性表的存储结构为宜?答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:1.基于空间的考虑。

当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

2.基于时间的考虑。

若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。

并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。

2.10 Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素{if(i<1||k<0||i+k-1>a.length) return INFEASIBLE;for(count=1;i+count-1<=a.length-k;count++) //注意循环结束的条件a.elem[i+count-1]=a.elem[i+count+k-1];a.length-=k;return OK;}//DeleteK2.11设顺序表中的数据元素递增有序,试写一算法,将X插入到顺序表的适当位置上,以保持该表的有序性。

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

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

一、选择题1、用单链表方式存储的线性表,存储每个结点需要两个域,一个是数据域,另一个是()A、当前结点所在的地址域B、指针域C、空指针域D、空闲域2、不带头结点的单链表head为空的判断条件是()A、head==NULLB、head->next==NULLC、head->data==NULLD、head!=NULL3、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在p和q之间插入s结点,则执行()A、s->next=p; q->next=s;B、p->next=s->next; s->next=p;C、q->next=s->next; s->next=p;D、p->next=s; s->next=q;4、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()A、O(1)B、O(n)C、O(n2)D、O(nlog2n)5、一个单链表中,若删除p所指结点的后续结点,则执行()A、p->next=p->next->next;B、p=p->next; p->next=p->next->next;C、p->next=p;D、p=p->next->next;6、已知一个顺序存储的基本线性表,设每个结点需占m个存储单元,若第一个结点的地址为d1,则第i个结点的地址为()A、d1+(i-1)*mB、d1+i*mC、d1-i*mD、d1+(i+1)*m7、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()A、访问第i个结点(1<=i<=n)和求第i个结点的直接前驱(2<=i<=n)B、在第i个结点后插入一个新结点(1<=i<=n)C、删除第i个结点(1<=i<=n)D、将n个结点从小到大排序8、下面给出的算法段是要把一个q所指新结点作为非空双向链表中的p所指结点的前驱结点插入到该双向链表中,能正确完成要求的算法段是()A、q->next=p; q->prior=p->prior; p->prior=q; p->prior->next=q;B、p->prior=q; q->next=p; p->prior->next=q; q->prior=p->prior;C、q->prior=p->prior; q->next=p; p->prior->next=q; p->prior=q;D、以上都不对9、在循环双链表的p所指结点之后插入s所指结点的操作是()A、p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;B、p->next=s; p->next->prior=s; s->prior=p; s->next=p->next;C、s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;D、s->prior=p; p->next->prior=s; s->next=p->next; p->next=s;10、从具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较()个结点。

数据结构习题及答案 (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.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。

数据结构--线性表习题及答案

数据结构--线性表习题及答案

数据结构--线性表习题及答案第⼆章线性表⼀、选择题1、若长度为n的线性表采⽤顺序存储结构,在其第i个位置插⼊⼀个新元素算法的时间复杂度()。

A. O(log2n)B.O(1)C. O(n)D.O(n2)2、若⼀个线性表中最常⽤的操作是取第i个元素和找第i个元素的前趋元素,则采⽤()存储⽅式最节省时间。

A. 顺序表B. 单链表C. 双链表D. 单循环链表3、具有线性结构的数据结构是()。

A. 图B. 树C. ⼴义表D.栈4、在⼀个长度为n的顺序表中,在第i个元素之前插⼊⼀个新元素时,需向后移动()个元素。

A. n-iB. n-i+1C. n-i-1D. i5、⾮空的循环单链表head的尾结点p满⾜()。

A. p->next==headB. p->next==NULLC. p==NULLD. p==head6、链表不具有的特点是()。

A. 可随机访问任⼀元素B. 插⼊删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正⽐7、在双向循环链表中,在p指针所指的结点后插⼊⼀个指针q所指向的新结点,修改指针的操作是()。

A. p->next=q;q->prior=p;p->next->prior=q;q->next=q;B. p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;C. q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;D. q->next=p->next;q->prior=p;p->next=q;p->next=q;8、线性表采⽤链式存储时,结点的存储地址()。

A. 必须是连续的B. 必须是不连续的C. 连续与否均可D. 和头结点的存储地址相连续9、在⼀个长度为n的顺序表中删除第i个元素,需要向前移动()个元素。

(完整word版)数据结构(c语言版)课后习题答案完整版资料

(完整word版)数据结构(c语言版)课后习题答案完整版资料

第1章绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n—1+n—2+……+1= n(n—1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L—〉next==NULL) return NULL;pmax=L-〉next;//假定第一个结点中数据具有最大值p=L-〉next—>next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax—>data) pmax=p;p=p->next;}return pmax-〉data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间.void inverse(LinkList &L) {// 逆置带头结点的单链表Lp=L-〉next;L->next=NULL;while (p){q=p—>next;// q指向*p的后继p->next=L—>next;L—>next=p; // *p插入在头结点之后p = q;}}(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素.[题目分析]在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。

本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。

因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

数据结构 线性表 习题

数据结构 线性表 习题

第二章线性表一、选择题1.线性表是()A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.一维数组与线性表的特征是()。

A.前者长度固定,后者长度可变B.两者长度均固定C.后者长度固定,前者长度可变D.两者长度均可变3.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是( ).A.当前结点所在地址域B.指针域C.空指针域D.空闲域4.用链表表示线性表的优点是()。

A.便于随机存取B.便于进行插入和删除操作C.占用的存储空间较顺序表少D.元素的物理顺序与逻辑顺序相同5.在具有 n 个结点的单链表中,实现___的操作,其算法的时间复杂度都是O(n)。

A.遍历链表和求链表的第i个结点D.删除地址为P的结点的后继结点B.在地址为P的结点之后插入一个结点 C.删除开始结点6.下面关于线性表的叙述中,错误的是()。

A.线性表采用顺序存储必须占用一片连续的存储单元B.线性表采用顺序存储便于进行插入和删除操作C.线性表采用链式存储不必占用一片连续的存储单元D.线性表采用链式存储便于进行插入和删除操作7.已知单链表的每个结点包括一个指针域next,它指向该结点的后继结点。

现要将指针 q 指向的新结点插入到指针 p 指向的结点之后,下面的操作序列中正确的是()。

A . q = p->next; p->next = q->next ;B . p->next = q->next; q = p->next ;C . q->next = p->next; p->next = q ;D . p->next = q; q->next = p->next ;8.设 a l,a2, a3为三个结点; p , 10 , 20 代表地址,则如下的链表存储结构称为()。

A.链表B.单链表C.双向循环链表D.双向链表9.单链表的存储密度()。

(完整版)数据结构课后习题及解析第二章

(完整版)数据结构课后习题及解析第二章

第二章习题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是给定的两个参变量,它们的值为任意的整数)。

(完整版)数据结构第二章线性表1答案

(完整版)数据结构第二章线性表1答案

(A )需经常修改L 中的结点值 (E )需不断对L 进行删除插入第二部分线性表、选择题1 •关于顺序存储的叙述中,哪一条是不正确的 (B )A. 存储密度大B. 逻辑上相邻的结点物理上不必邻接C. 可以通过计算直接确定第i 个结点的位置D. 插入、删除操作不方便2.长度为n 的单链表连接在长度为 m 的单链表后的算法的时间复杂度为(C )A 0( n )B 0(1)C 0(m )D 0(m+n )3 .在n 个结点的顺序表中,算法的时间复杂度是0(1)的操作是:(A )A 访问第i 个结点(1<=i<=n )和求第i 个结点的直接前趋(2<=i<=n)B 在第i 个结点(1<=i<=n )后插入一个新结点C 删除第i 个结点(1<=i<=n)D 将n 个结点从小到大排序4.一个向量第一个兀素的存储地址是100 ,每个兀素的长度为 2 ,则第5 个兀素的地址是(B )( A ) 110 ( B ) 108 (C ) 100 ( D ) 1205 .已知一个顺序存储的线性表, 设每个结点需要占 m 个存储单元,若第一个结点的地址为 da ,则第i 个结点的地址为:(A )7 .链表是一种采用( B )存储结构存储的线性表。

(A )顺序 (B )链式 (C )星式 (D )网状8 .线性表若采用链式存储结构时,要求内存中可用存储单兀的地址:(D )(A )必须是连续的 (B )部分地址必须是连续的 (C )一定是不连续的(D )连续或不连续都可以9 .线性表L 在_ ( B )情况下适用于使用链式结构实现。

A ) da+(i-1)*mB ) da+i*m6.在具有n 个结点的单链表中,实现(A )遍历链表和求链表的第i 个结点C )删除开始结点 C ) da-i*mD ) da+(i+1)*mA )的操作,其算法的时间复杂度为 0(n )。

B )在地址为p 的结点之后插入一个结点D ) 删除地址为p 的结点的后继结点10.在长度为n 的顺序表的第i(1 < i < n+1)个位置上插入一个兀素,兀素的移动次数为( A )A.n-i+1B.n-iC.iD.i-1.线性表是( A )。

数据结构第二章习题(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章线性表参考答案一、填空1. 【严题集2.2①】在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

2. 线性表中结点的集合是有限的,结点间的关系是一对一的。

3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。

4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。

5. 在顺序表中访问任意一结点的时间复杂度均为 O(1),因此,顺序表也称为随机存取的数据结构。

6. 【严题集2.2①】顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

7. 【严题集2.2①】在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

8.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

二、判断正误(在正确的说法后面打勾,反之打叉)( × )1. 链表的每个结点中都恰好包含一个指针。

答:错误。

链表中的结点可含多个指针域,分别存放多个指针。

例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。

( × )2. 链表的物理存储结构具有同链表一样的顺序。

错,链表的存储结构特点是无序,而链表的示意图有序。

( × )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

错,链表的结点不会移动,只是指针内容改变。

( × )4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。

( × )5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

错,正好说反了。

顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”( × )6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

数据结构第2章习题参考答案

数据结构第2章习题参考答案

2.7 习题2.7.1知识点:线性表的逻辑结构一、选择题1①线性表L=(a1, a2,…,an),下列说法正确的是(D )。

A.每个元素都有一个直接前驱和一个直接后继。

B.线性表中至少要有一个元素。

C.表中诸元素的排列顺序必须是由小到大或由大到小。

D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

2①在线性表的下列运算中,不改变数据元素之间结构关系的运算是(D )。

A.插入B.删除C.排序D.定位3①线性表是具有n 个(C )的有限序列(n>0)。

【清华大学1998】A.表元素B.字符C.数据元素D.数据项E.信息项二、判断题(T )1①线性表中的每个结点最多只有一个前驱和一个后继。

( F )2①线性表中的每个结点都至少有一个前驱结点和后继结点。

( F )3①线性表是N个数的有限序列。

(F)4①同一线性表的数据元素可以具有不同的特性。

(T )5①线性表的长度n就是表中数据元素的个数,当n=0时,称为空表。

(T )6①线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短。

( F )7①对线性表中的数据元素只能进行访问,不能进行插入和删除操作。

2.7.2知识点:线性表的顺序存储结构一、选择题1①在一个长度为n的顺序表中,在第i个元素(1 <= i <=n+1)之前插入一个新元素时需向后移动( B )个元素.A.n-1 B.n-i+1 C.n-i-1 D.i2①若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(D )存储方式最节省时间。

A.单链表B.双链表C.单向循环D.顺序表3②一个数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(B )A.110 B.108 C.100 D.1204①下述哪一条是顺序存储结构的优点( A )。

【北方交通大学2001】A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示5③若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为(C )(1<=i<=n+1)。

数据结构第二章习题

数据结构第二章习题

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

a、表元素B.字符C.数据元素D.数据项2。

线性表格是。

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

a、 U4。

列表中不连续的部分必须是U4。

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

a、输出I(1≤ 我≤ n) th元素值b.交换第1个元素与第2个元素的值c.顺序输出这n个元素的值d、输出与线性表中给定值x相等的元素序列号6.设线性表中有2n个元素,以下操作中,_________在单链表上实现要比在顺序表上实现效率更高。

a.删除指定的元素b、在最后一个元素后插入新元素。

C.按顺序输出前k个元素d.交换第i个元素和第2n-i-1个元素的值(i=0,1…,n-1)7.如果最常见的操作是获取第i个节点及其前体,请使用___________________。

a.单链表b.双链表c、与单链表相比,双链表的优点之一是。

a.插入和删除操作更简单b.可以进行随机访问c.可以省略表头指针或表尾指针d.访问前后相邻结点更灵活9.带头结点的单链表l为空的判定条件是_________。

a、 l==nullb.l->next==nullc.l->next==ld.l!=无效的10.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是_________。

a、 o(1)b.o(n)c.o(n2)d.o(nlog2n)11.在一个长度为n(n>1)的带头结点的单链表h上,另设有尾指针r(指向尾结点),执行_________操作与链表的长度有关。

数据结构 第二章:线性表

数据结构 第二章:线性表

第二章线性表:习题习题一、选择题1.L是线性表,已知Length(L)的值是5,经运算?Delete(L,2)后,length(L)的值是( c)。

A.5B.0C.4D.62.线性表中,只有一个直接前驱和一个直接后继的是( )。

A.首元素 B.尾元素C.中间的元素 D.所有的元素+3.带头结点的单链表为空的判定条件是( )。

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

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

A. p->next = =NULLB. p=NULLC. p->next==headD. p= =head6.线性表中各元素之间的关系是( c)关系。

A.层次B.网状C.有序 D.集合7.在循环链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 38.在单链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 39.在双链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 310.在一个单链表中,若删除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;11.指针P指向循环链表L的首元素的条件是()。

A.P= =L B. P->next= =L C. L->next=P D. P-> next= =NU LL12. 在一个单链表中,若在p所指结点之后插入s所指结点,则执行()。

数据结构(线性表习题含答案)

数据结构(线性表习题含答案)

数据结构第二章线性表习题含答案说明:顺序存储的线性表称为向量。

一,单项选择题一个向量第一个元素的地址是100,每个元素的长度为2,则第5个元素的地址是__①_B__。

A) 110 B) 108 C) 100 D) 120线性结构通常采用的两种存储结构是__①A___。

A) 顺序存储结构和链式存储结构B) 散列方式和索引方式C) 链表存储结构和数组D) 线性存储结构和非线性存储结构不带头结点的单链表head为空的判定条件是__①__A_.A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL带头结点的单链表head为空的判定条件是__①B___。

A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL非空的循环链表head的尾结点(由p所指向)满足__①_C__。

A) p->next==NULL B) p==NULLC) P->next==head D) p==head在循环双链表的p所指结点之后插入s所指结点的操作是___①_C_。

A) p->right=s; s->left=p; p->right->left=s; s->right=p->right;B) p->right=s; p->right->left=s; s->left=p; s->right=p->right;C) s->left=p; s->right=p->right; p->right=s; p->right->left=s;D) s->left=p; s->right=p->right; p->right->left=s; p->right=s;在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点, 则执行__①c___。

《数据结构》第二章线性表习题及参考答案

《数据结构》第二章线性表习题及参考答案

《数据结构》第二章线性表习题一、单项选择题1. 线性表是________。

A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。

A.n-i B.n-i+l C.n-i-1 D.i3. 线性表采用链式存储时,其地址________。

A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。

A.n/2 B.n C.(n+1)/2 D.(n-1)/25. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。

A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为________。

A.p->next=p->next->next; B.p=p->next; C.p=p->next->next; D.p->next=p;7. 在一个长度为n的顺序表中向第i个元素(0< i<n+l )之前插入一个新元素时,需向后移动______个元素。

完整word版数据结构练习题线性表习题及答案

完整word版数据结构练习题线性表习题及答案

第二章线性表一.名词解释1.线性结构2.数据结构的顺序实现3.顺序表4.链表5.数据结构的链接实现6. 建表7.字符串8.串9.顺序串 10.链串二、填空题1.为了便于讨论,有时将含n(n>=0)个结点的线性结构表示成(a,a,……a),其中每n12个a代表一个______。

a称为______结点,a称为______结点,i称为a在线性表中的________ii1n或______。

对任意一对相邻结点a、a(1<=i<n),a称为a的直接______a称为a的直iii┼1i┼1┼i1i接______。

2.为了满足运算的封闭性,通常允许一种逻辑结构出现不含任何结点的情况。

不含任何结点的线性结构记为______或______。

3.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.4.所有结点按1对1的邻接关系构成的整体就是______结构。

5.线性表的逻辑结构是______结构。

其所含结点的个数称为线性表的______,简称______.6.表长为O的线性表称为______7.线性表典型的基本运算包括:______、______、______、______、______、______等六种。

8.顺序表的特点是______。

9.顺序表的类型定义可经编译转换为机器级。

假定每个datatype类型的变量占用k(k>=1)个内存单元,其中,b是顺序表的第一个存储结点的第一个单元的内存地址,那么,第i个结点a的存储地址为______。

i10.以下为顺序表的插入运算,分析算法,请在______处填上正确的语句。

Void insert_sqlist(sqlist L,datatype x,int i)/*将X插入到顺序表L的第i-1个位置*/{ if( st == maxsize) error(“表满”);if((i<1)||(i>st+1))error(“非法位置”);for(j=st;j>=i;j--)______;L.data[i-1]=x;st=st+1;}11.对于顺序表的插入算法insert_sqlist来说,若以结点移动为标准操作,则插入算法的最坏时间复杂性为________,量级是________。

《数据结构》习题集:第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 )。

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

《数据结构》第二章线性表习题一、单项选择题1. 线性表是________。

A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。

A.n-i B.n-i+l C.n-i-1 D.i3. 线性表采用链式存储时,其地址________。

A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。

A.n/2 B.n C.(n+1)/2 D.(n-1)/25. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。

A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为________。

A.p->next=p->next->next; B.p=p->next; C.p=p->next->next; D.p->next=p;7. 在一个长度为n的顺序表中向第i个元素(0< i<n+l )之前插入一个新元素时,需向后移动______个元素。

A.n-i B.n-i+l C.n-i-1 D.i8. 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行A.s->next=p->next; p->next=s B.q->next=s; s->next=pC.p->next=s->next; s->next=p D.p->next=s; s->next=q9. 以下关于线性表的说法不正确的是______。

A.线性表中的数据元素可以是数字、字符、记录等不同类型。

B.线性表中包含的数据元素个数不是任意的。

C.线性表中的每个结点都有且只有一个直接前趋和直接后继。

D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。

10. 线性表的顺序存储结构是一种_______的存储结构。

A.随机存取B.顺序存取C.索引存取D.散列存取11. 在顺序表中,只要知道_______,就可在相同时间内求出任一结点的存储地址。

A.基地址 B.结点大小 C.向量大小 D.基地址和结点大小12. 在等概率情况下,顺序表的插入操作要移动______结点。

A.全部 B.一半 C.三分之一 D.四分之一13. 在______运算中,使用顺序表比链表好。

A.插入 B.删除 C.根据序号查找 D.根据元素值查找14. 在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是_______。

A.O(1) B.O(n) C.O(n2) D.O(log2n)15. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列__________。

A.A, B, C, D, E B.B, C, D, E, A C.E, A, B, C, D D.E, D, C, B, A 16. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为______。

A.top不变B.top=0 C.top-- D.top++17. 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行______。

A.hs->next=s; B.s->next=hs; hs=s;C.s->next=hs->next;hs->next=s; D.s->next=hs; hs=hs->next;18. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为________。

A.rear%n= = front B.(front+l)%n= = rearC.rear%n -1= = front D.(rear+l)%n= = front19. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队空的条件为________。

A.rear%n= = front B.front+l= rear C.rear= = front D.(rear+l)%n= front 20. 在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为________。

A.front=front->next B.rear=rear->nextC.rear=front->next D.front=rear->next二、填空题1. 线性表是一种典型的_________结构。

2. 在一个长度为n的顺序表的第i个元素之前插入一个元素,需要后移____个元素。

3. 顺序表中逻辑上相邻的元素的物理位置________。

4. 要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需_______一个位置,移动过程是从_______向_______依次移动每一个元素。

5. 在线性表的顺序存储中,元素之间的逻辑关系是通过_______决定的;在线性表的链接存储中,元素之间的逻辑关系是通过_______决定的。

6. 在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_______结点。

7. 当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用_______存储结构为宜。

相反,当经常进行的是插入和删除操作时,则采用_______存储结构为宜。

8. 顺序表中逻辑上相邻的元素,物理位置____相邻,单链表中逻辑上相邻的元素,物理位置____相邻。

9. 线性表、栈和队列都是_______结构,可以在线性表的______位置插入和删除元素;对于栈只能在_______位置插入和删除元素;对于队列只能在_______位置插入元素和在_______位置删除元素。

10. 根据线性表的链式存储结构中每个结点所含指针的个数,链表可分为_________和_______;而根据指针的联接方式,链表又可分为________和_________。

11. 在单链表中设置头结点的作用是________。

12. 对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为______,在给定值为x的结点后插入一个新结点的时间复杂度为_______。

13. 对于一个栈作进栈运算时,应先判别栈是否为_______,作退栈运算时,应先判别栈是否为_______,当栈中元素为m时,作进栈运算时发生上溢,则说明栈的可用最大容量为_______。

为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的_______分别设在这片内存空间的两端,这样只有当_______时才产生上溢。

14. 设有一空栈,现有输入序列1,2,3,4,5,经过push, push, pop, push, pop, push, push后,输出序列是_________。

15. 无论对于顺序存储还是链式存储的栈和队列来说,进行插入或删除运算的时间复杂度均相同为__________。

三、简答题1. 描述以下三个概念的区别:头指针,头结点,表头结点。

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

5. 在单循环链表中设置尾指针比设置头指针好吗?为什么?6. 假定有四个元素A, B, C, D依次进栈,进栈过程中允许出栈,试写出所有可能的出栈序列。

7. 什么是队列的上溢现象?一般有几种解决方法,试简述之。

8. 下述算法的功能是什么?LinkList *Demo(LinkList *L){ // L是无头结点的单链表LinkList *q,*p;if(L&&L->next){ q=L; L=L->next; p=L;while (p->next) p=p->next;p->next=q; q->next=NULL;}return (L);}四、算法设计题1. 设计在无头结点的单链表中删除第i个结点的算法。

2. 在单链表上实现线性表的求表长ListLength(L)运算。

3. 设计将带表头的链表逆置算法。

4. 假设有一个带表头结点的链表,表头指针为head,每个结点含三个域:data, next和prior。

其中data为整型数域,next和prior均为指针域。

现在所有结点已经由next域连接起来,试编一个算法,利用prior域(此域初值为NULL)把所有结点按照其值从小到大的顺序链接起来。

5. 已知线性表的元素按递增顺序排列,并以带头结点的单链表作存储结构。

试编写一个删除表中所有值大于min且小于max的元素(若表中存在这样的元素)的算法。

6. 已知线性表的元素是无序的,且以带头结点的单链表作为存储结构。

设计一个删除表中所有值小于max但大于min的元素的算法。

7. 假定用一个单循环链表来表示队列(也称为循环队列),该队列只设一个队尾指针,不设队首指针,试编写下列各种运算的算法:(1)向循环链队列插入一个元素值为x的结点;(2)从循环链队列中删除一个结点。

8. 设顺序表L是一个递减有序表,试写一算法,将x插入其后仍保持L的有序性。

习题2参考答案一、单项选择题1.A 2.A 3.D 4.C 5.D 6.A 7.B 8.B 9.C 10.A 11.D 12.B 13.C 14.B 15.C 16.C 17.B 18.D 19.C 20.A二、填空题1.线性 2.n-i+1 3.相邻 4.前移,前,后 5.物理存储位置,链域的指针值6.前趋,后继 7.顺序,链接 8.一定,不一定 9.线性,任何,栈顶,队尾,队头10.单链表,双链表,非循环链表,循环链表11.使空表和非空表统一;算法处理一致12.O(1),O(n)13.栈满,栈空,m,栈底,两个栈的栈顶在栈空间的某一位置相遇14.2、3 15.O(1)三、简答题1.头指针是指向链表中第一个结点(即表头结点)的指针;在表头结点之前附设的结点称为头结点;表头结点为链表中存储线性表中第一个数据元素的结点。

相关文档
最新文档