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

合集下载

数据结构:线性表期末单元测试与答案

数据结构:线性表期末单元测试与答案

线性表期末单元测试与答案顺序存储结构一、单选题1、顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

A.120B.100C.108D.110正确答案:C2、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。

A.将n个结点从小到大排序B.在第i个结点后插入一个新结点(1≤i≤n)C.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)D.删除第i个结点(1≤i≤n)正确答案:C3、向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为()。

A.8B.63.5C.7D.63正确答案:B4、将两个各有n个元素的有序顺序表归并成一个有序表,其最少的比较次数是()。

A.2n-1B.n-1C.2nD.n正确答案:D5、在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动()个元素。

A.iB.n-i-1C.n-i+1D.n-i正确答案:C6、线性表L=(a1,a2,……an),下列说法正确的是()。

A.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继B.线性表中至少有一个元素C.表中诸元素的排列必须是由小到大或由大到小D.每个元素都有一个直接前驱和一个直接后继正确答案:A7、在长度为n的顺序表中插入一个元素的时间复杂度为()。

A.O(log2n)B. O(n)C.O(1)D.O(n2)正确答案:B8、在长度为n的顺序表中删除一个元素的时间复杂度为()。

A.O(log2n)B. O(n2)C.O(n)D.O(1)正确答案:C9、将两个长度分别为n、m的递增有序顺序表归并成一个有序顺序表,其最少的比较次数是()(MIN表示取最小值)。

A.mB.m+nC.nD.MIN(m,n)正确答案:D10、下述()是顺序存储结构的优点。

A.方便地运用于各种逻辑结构的存储表示B.存储密度大C.删除运算方使D.插入运算方便正确答案:B11、线性表的顺序存储结构是一种()。

数据结构习题及答案 (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.线性结构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接______。

< bdsfid="75" p=""></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的存储地址为______。

数据结构线性表答案 (1)

数据结构线性表答案 (1)

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

解:头指针是指向链表中第一个结点的指针。

首元结点是指链表中存储第一个数据元素的结点。

头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。

它可以对空表、非空表以及首元结点的操作进行统一处理。

2.2 填空题。

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

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

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

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

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

2.3 在什么情况下用顺序表比链表好?解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。

2.4 对以下单链表分别执行下列各程序段,并画出结果示意图。

解:2.5 画出执行下列各行语句后各指针及链表的示意图。

L=(LinkList)malloc(sizeof(LNode)); P=L; for(i=1;i<=4;i++){P->next=(LinkList)malloc(sizeof(LNode)); P=P->next; P->data=i*2-1;}P->next=NULL;for(i=4;i>=1;i--) Ins_LinkList(L,i+1,i*2); for(i=1;i<=3;i++) Del_LinkList(L,i);解:2.6 已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

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

计算机软件基础(线性数据结构_ 线性表)期末单元测试与答案

计算机软件基础(线性数据结构_ 线性表)期末单元测试与答案

一、单选题1、若线性表最常用的操作是存取第i个元素及其前趋和后继元素的值,为节省时间应采用的存储方式是()。

A.单链表B.双向链表C.单循环链表D.顺序表正确答案:D2、对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A. 单链表B. 仅有头指针的单循环链表C. 仅有尾指针的单循环链表D. 双循环链表正确答案:C3、数据的存储结构包括顺序、链接、散列和()4种基本类型。

A.索引B.数组C.集合D.向量正确答案:A4、在一个长度为n的顺序存储结构的线性表中,向第i个元素(1≤i≤n+1)位置插入一个元素时,需要从前向后依次移动()个元素。

A. n-iB.n-i+lC.n-i-lD.i正确答案:B5、在一个长度为n的顺序存储结构的线性表中,删除第i个元素(1≤i≤n)时,需要从后向前依次移动()个元素。

A. n-iB.n-i+lC.n-i-lD.i正确答案:A6、下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

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

正确答案:B7、线性表是具有n 个()的有限序列(n>0)。

A.表元素B.字符C.数据元素D.数据项E.信息项正确答案:C8、静态链表中指针表示的是().A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址正确答案:C9、下面的叙述不正确的是()A.线性表在链式存储时,查找第i 个元素的时间同i 的值成正比B. 线性表在链式存储时,查找第i 个元素的时间同i 的值无关C. 线性表在顺序存储时,查找第i 个元素的时间同i 的值无关正确答案:B10、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1)正确答案:C二、判断题1、()线性表的特点是每个元素都有一个前驱结点和一个后继结点。

数据结构习题及答案 (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. 线性表的定义线性表是一种常用的数据结构,它由一系列元素组成,并且每个元素具有前驱和后继关系。

线性表可以通过顺序存储或链式存储来实现。

2. 线性表的实现方式2.1 顺序存储顺序存储是利用数组来实现线性表的一种方式。

数组的每个元素可以存储一个数据项,通过下标可以快速访问和操作其中的元素。

2.2 链式存储链式存储是通过节点之间的指针关联来实现线性表的一种方式。

每个节点包含数据域和指针域,指针域指向下一个节点。

3. 线性表的基本操作3.1 初始化线性表初始化线性表需要给表头节点分配内存空间,并将头节点的指针域置为空。

3.2 插入元素在线性表的某个位置插入元素,需要先找到插入位置的前一个节点,然后将新节点插入到该位置。

调整节点之间的指针关联即可完成插入操作。

3.3 删除元素删除线性表中的某个元素,需要找到待删除元素的前一个节点,然后将该节点的指针指向待删除节点的下一个节点,释放待删除节点的内存空间即可。

3.4 查找元素查找线性表中某个元素的位置,可以从表头节点开始逐个比较节点的数据域,直到找到目标元素或者遍历结束。

4. 线性表的习题与答案4.1 习题1已知线性表L中的元素按非递减顺序排列,设计一个算法,将元素x插入到L中,保持L的有序性。

解答:1) 从表头节点开始,顺序遍历节点的数据域,找到第一个大于等于x的节点的前一个节点,记为p。

2) 创建新的节点node,将x赋值给node的数据域。

3) 将node的指针域指向p的下一个节点。

4) 将p的指针域指向node。

5) 插入完成。

4.2 习题2已知线性表L中的元素按递减顺序排列,设计一个算法,删除L中所有大于x的元素。

解答:1) 从表头节点开始,顺序遍历节点的数据域,找到第一个小于等于x的节点的前一个节点,记为p。

2) 将p的指针域指向p的下一个节点,删除p的后继节点。

3) 重复执行步骤2,直到遍历结束。

数据结构-线性表习题及解析

数据结构-线性表习题及解析

线性表典型例题一、单项选择题[例7-1]在数据结构中,与所使用计算机无关的数据叫( ①)结构;链表是一种采用( ②)存储结构存储的线性表;链表适用于( ③)查找;在链表中进行( ④)操作的效率比在线性表中进行该操作的效率高。

①A.存储B.物理C.逻辑D.物理和逻辑②A.顺序B.网状C.星式D.链式③A.顺序B.二分法C.顺序及二分法D.随机④A.二分法查找B.快速查找C.顺序查找D.插入解析:本题考查的是基本概念。

本题答案为:①C;②D;③A;④D。

[例7-2] 链表不具备的特点是( )。

A.插入和删除不需要移动元素B.可随机访问任一结点C.不必预分配空间D.所需空间与其长度成正比解析:线性表可随机访问任一结点,而链表必须从第一个数据结点出发逐一查找每个结点。

本题答案为:B。

[例7-3] 不带头结点的单链表head为空的判定条件是( )。

A.head==NULL B.head_>next==NULLC.head_>next==head D.head!=NULL解析:在不带头结点的单链表head中,head指向第一个数据结点。

空表即该表没有结点,head==NULL表示该单链表为空。

本题答案为:A。

[例7-4] 带头结点的单链表head为空的判定条件是( )。

A.head==NULL B.head—>next==NULLC.head—> next==head D.head!=NULL解析:在带头结点的单链表head中,head指向头结点。

空表即该表只有头结点,head —>next==NULL表示该单链表为空。

本题答案为:B。

[例7-5] 带头结点的循环单链表head中,head为空的判定条件是( )。

A.head==NULL B.head—>next==NULLC.head—> next==head D.head!=NULL解析:在带头结点的循环单链表head中,head指向头结点。

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

一、选择题
1、用单链表方式存储的线性表,存储每个结点需要两个域,一个是数据域,另一个是()
A、当前结点所在的地址域
B、指针域
C、空指针域
D、空闲域
2、不带头结点的单链表head为空的判断条件是()
A、head==NULL
B、head->next==NULL
C、head->data==NULL
D、head!=NULL
3、在一个单链表中,已知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)*m
B、d1+i*m
C、d1-i*m
D、d1+(i+1)*m
7、在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结点时,在查找成功的情况下,需平均比较()个结点。

A、n
B、n/2
C、(n-1)/2
D、(n+1)/2
11、单链表的存储空间利用率()
A、大于1
B、等于1
C、小于1
D、不能确定
12、在顺序表中,有7个元素,设第1个元素的查找概率是1/4,第2个元素的查找概率是1/3,其余元素的查找概率相等,则整个顺序表的平均查找次数是()次。

A、44/12
B、451/60
C、36/12
D、56/24
13、顺序表的长度是()。

A、表中的存储空间数
B、表中的数据元素个数
C、存储空间数减去数据元素个数
D、存储空间数加数据元素个数
14、在单链表中插入结点的时间复杂度是()
A、O(1)
B、O(n)
C、O(n2)
D、O(log2n)
二、填空题
1、基本线性表有(顺序)和(链式)两种存储形式。

2、在双链表中,每个结点有两个指针域,一个指向(前驱结点),另一个指向(后继结点)。

3、按顺序存储方法存储的基本线性表称为(顺序表),按链表存储的基本线性表称为(链表)。

4、顺序表相对于链表的优点有(随机存取)和(存储空间利用率高)。

5、链表相对于顺序表的优点有(存储空间动态分配)和(插入删除操作效率高)。

6、在n个结点的顺序表中插入一个结点需平均移动(N/2)个结点,具体的移动次数取决于(插入的位置)。

7、在n个结点的顺序表中删除一个结点需平均移动((N-1)/2)个结点,具体的移动次数取决于(删除的位置)。

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

9、在单链表中设置头结点的作用是(保护头指针)。

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

11、当对一个基本线性表进行插入和删除操作较频繁时,线性表应采用(链式)存储结构;当对线性表的操作不会引起它的变化时,线性应采用(顺序)存储结构。

12、基本线性表的链式存储中,根据链表指针的链接方向可分为(单向链表)、(双向链表)和(循环链表)。

13、在个结点的单链表中要删除已知结点*p,则需找到(P的前驱结点),其时间复杂度为(O(N))。

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

15、在循环链表中,可根据任一结点的地址遍历整个链表,而单链表中需知道(头指针)才能遍历整个链表。

相关文档
最新文档