数据结构与算法习题

合集下载

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

第1章绪论1.选择题(1)C (2)B (3)C (4)D (5)B2.判断题(1)√(2)Ⅹ(3)Ⅹ(4)Ⅹ(5)√3.简答题(1)根据数据元素之间的不同逻辑关系,通常将其划分为哪几类结构?【解答】常见的四种逻辑结构有:①集合结构:数据元素间的关系是“属于同一个集合”。

②线性结构:数据元素之间存在着一对一的关系。

③树型结构:数据元素之间存在着一对多的关系。

④图型结构:数据元素之间存在着多对多的关系。

(2)请描述线性结构中数据元素与数据元素之间的关系特点?【解答】线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。

在线性结构中,有且仅有一个元素被称为“第一个”,除第一个元素之外其他元素均有唯一一个“前驱”;有且仅有一个元素被称为“最后一个”,除最后一个元素之外其他元素均有唯一一个“后继”。

(3)请描述树形结构中数据元素与数据元素之间的关系特点?【解答】树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。

在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。

(4)常用的存储结构有哪几种,各自的特点是什么?【解答】常见的四种存储结构有:①顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。

顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。

②链接存储:对逻辑上相邻的元素不要求不要求物理位置相邻的存储单元,元素间的逻辑关系通过附设的指针域来表示。

③索引存储:通过建立索引表存储结点信息的方法,其中索引表一般存储结点关键字和一个地点信息,可通过该地址找到结点其它信息。

④散列存储:根据结点的关键字直接计算出该结点的存储地址的方法。

(5)简述算法和程序的区别。

【解答】一个算法若用程序设计语言来描述,则它就是一个程序。

算法的含义与程序十分相似,但又有区别。

一个程序不一定满足有穷性。

数据结构与算法复习题

数据结构与算法复习题

《数据结构与算法》一、选择题1. 组成数据的基本单位是( )。

(A) 数据项 (B)数据类型 (C)数据元素 (D)数据变量2. 线性表的链接实现有利于( )运算。

(A) 插入 (B)读表元 (C)查找 (D)定位3. 串的逻辑结构与( )的逻辑结构不同。

(A) 线性表 (B)栈 (C)队列 (D)树4. 二叉树第i(i≥1)层最多有( )个结点。

(A) 2i (B)2i (C) 2i-1 (D) 2i-15. 设单链表中指针p指向结点A,若要删除A后结点(若存在),则需要修改指针的操作为( )(A) p->next = p->next->next (B)p=p->next(C)p=p->next->next (D)p->next=p6、栈和队列的共同特点是( )。

(A)只允许在端点处插入和删除元素 (B)都是先进后出(C)都是先进先出 (D)没有共同点7、二叉树的第k层的结点数最多为( ).(A)2k+1 (B)2K+1 (C)2K-1(D) 2k-18、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。

(A) BADC (B) BCDA (C) CDAB (D) CBDA9、设某完全无向图中有n个顶点,则该完全无向图中有()条边。

(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-110、下面程序的时间复杂为()for(i=1,s=0; i<=n; i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(n3)11、设某强连通图中有n个顶点,则该强连通图中至少有()条边。

(A) n(n-1) (B) n+1 (C) n (D) n(n+1)12、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。

《数据结构与算法》(张晓莉)习题

《数据结构与算法》(张晓莉)习题

第一章绪论1. 从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构2. 在下面的程序段中,对x的赋值语句的频度为().For(k=1;k〈=n;k++)For(j=1;j〈=n;j++)x=x+1;A.O(2n) B.O(n)C.O(n2) D.O(log2n)3。

采用顺序存储结构表示数据时,相邻的数据元素的存储地址( ).A.一定连续B.一定不连续C.不一定连续D.部分连续、部分不连续4. 下面关于算法的说法,正确的是().A.算法的时间复杂度一般与算法的空间复杂度成正比B.解决某问题的算法可能有多种,但肯定采用相同的数据结构C.算法的可行性是指算法的指令不能有二义性D.同一个算法,实现语言的级别越高,执行效率就越低5。

在发生非法操作时,算法能够作出适当处理的特性称为().A.正确性B.健壮性C.可读性D.可移植性第二章线性表1. 线性表是()。

A.一个有限序列,可以为空B.一个有限序列,不能为空C.一个无限序列,可以为空D.一个无限序列,不能为空2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。

插入一个元素时平均要移动表中的()个元素。

A.n/2 B.(n+1)/2 C.(n-1)/2 D.n3.线性表采用链式存储时,其地址()。

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续与否均可以4.用链表表示线性表的优点是( )。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同5.链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。

A.单链表B.双链表C.单循环链表D.带头结点的双向循环链表6.下面关于线性表的叙述,错误的是().A.线性表采用顺序存储,必须占用一片地址连续的单元B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链式存储,不必占用一片地址连续的单元D.线性表采用链式存储,不便于进行插入和删除操作7.单链表中,增加一个头结点的目的是为了( ).A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方便运算的实现D.说明单链表是线性表的链式存储8.在单链表指针为p的结点之后插入指针为s结点,正确的操作是()。

《数据结构与算法》课后习题答案

《数据结构与算法》课后习题答案

2.3 课后习题解答2.3.2 判断题1.线性表的逻辑顺序与存储顺序总是一致的。

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

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

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

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

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

〔√〕7.线性表的链式存储构造优于顺序存储构造。

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

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

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

〔×〕11.静态链表既有顺序存储的优点,又有动态链表的优点。

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

〔×〕12.线性表的特点是每个元素都有一个前驱和一个后继。

〔×〕2.3.3 算法设计题1.设线性表存放在向量A[arrsize] 的前 elenum 个分量中,且递增有序。

试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。

【提示】直接用题目中所给定的数据构造〔顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个构造体〕,因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,假设有,那么根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,〔也可以从高低标端开始一边比拟,一边移位〕然后插入x ,最后修改表示表长的变量。

int insert (datatype A[],int *elenum,datatype x)/* 设 elenum 为表的最大下标*/ {if (*elenum==arrsize-1)return 0;/* 表已满,无法插入*/else {i=*elenum;while (i>=0 && A[i]>x)/* 边找位置边移动*/{A[i+1]=A[i];i--;}/* 插入成功 */A[i+1]=x;(*elenum)++;return 1;}}时间复杂度为O(n) 。

数据结构与算法分析习题与参考答案

数据结构与算法分析习题与参考答案

大学《数据结构与算法分析》课程习题及参考答案模拟试卷一一、单选题(每题 2 分,共20分)1.以下数据结构中哪一个是线性结构?( )A. 有向图B. 队列C. 线索二叉树D. B树2.在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下( )语句序列。

A. p=q; p->next=q;B. p->next=q; q->next=p;C. p->next=q->next; p=q;D. q->next=p->next; p->next=q;3.以下哪一个不是队列的基本运算?()A. 在队列第i个元素之后插入一个元素B. 从队头删除一个元素C. 判断一个队列是否为空D.读取队头元素的值4.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成( )个不同的字符串?A.14B.5C.6D.85.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为( )。

以下6-8题基于图1。

6.该二叉树结点的前序遍历的序列为( )。

A.E、G、F、A、C、D、BB.E、A、G、C、F、B、DC.E、A、C、B、D、G、FD.E、G、A、C、D、F、B7.该二叉树结点的中序遍历的序列为( )。

A. A、B、C、D、E、G、FB. E、A、G、C、F、B、DC. E、A、C、B、D、G、FE.B、D、C、A、F、G、E8.该二叉树的按层遍历的序列为( )。

A.E、G、F、A、C、D、B B. E、A、C、B、D、G、FC. E、A、G、C、F、B、DD. E、G、A、C、D、F、B9.下面关于图的存储的叙述中正确的是( )。

A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关10.设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A. a,g,h,m,n,p,q,x,zB. a,g,m,h,q,n,p,x,zC. g,m,q,a,n,p,x,h,zD. h,g,m,p,a,n,q,x,z二、填空题(每空1分,共26分)1.数据的物理结构被分为_________、________、__________和___________四种。

数据结构与算法设计-习题1-3

数据结构与算法设计-习题1-3

int
data;
struct Lnode *next;
// 数据域 // 指针域
} LNode, *LinkList; LinkList la, lb; // 单链表的头指针 请用 la 和 lb 中的结点合并生成一个新的非 递增的有序单链表 lc。合并完成后,原来的 la 和 lb 成为空链表。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
正确且高效的算法如下: Status DeleteK(SqList &a ,int i, int k) {//设线性表元素从a.base[1]起存储,从第i个元素起
删除k个元素。
if ( i<1|| k< 0 || (i+k)>a.length) return ERROR;
for ( j=i+k;j<=a.length; ++j)
操作步骤
1) 建空表 Lc; 2) 依次从 La 或 Lb 中“摘取”元素值较小的
结点插入到 Lc 表中第一个结点之前直至其 中一个表变空为止; 3) 继续将 La 或 Lb 其中一个表的剩余结点插 入在 Lc 表的表头结点之后; 4) 释放 La 表和 Lb 表的表头结点。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
单链表中逻辑上相邻的元素的物理位置 不一定 紧邻。
(3)在单链表中,除了头结点外,任一结点的存储位置 由 该结点的直接前趋 指示。
(4)在单链表中设置头结点的作用是
在表的第一个元素结点之前插入新元素结点或删除 第一个元素结点不需修改头作指者 针(时间 2000年)

《数据结构与算法》第六章-树与二叉树习题

《数据结构与算法》第六章-树与二叉树习题

《数据结构与算法》第二部分习题精选一、下面是有关二叉树的叙述,请判断正误()1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。

()2.二叉树中每个结点的两棵子树的高度差等于1。

()3.二叉树中每个结点的两棵子树是有序的。

()4.二叉树中每个结点有两棵非空子树或有两棵空子树。

()5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。

()6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。

()7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。

()8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。

()9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。

(√)10. 具有12个结点的完全二叉树有5个度为2的结点。

二、填空1.由3个结点所构成的二叉树有种形态。

2. 一棵深度为6的满二叉树有个分支结点和个叶子。

3.一棵具有257个结点的完全二叉树,它的深度为。

4.设一棵完全二叉树有700个结点,则共有个叶子结点。

5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。

6.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。

7. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。

因而二叉树的遍历次序有六种。

最常用的是三种:前序法(即按N L R次序),后序法(即按次序)和中序法(也称对称序法,即按L N R次序)。

这三种方法相互之间有关联。

若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是。

8.中序遍历的递归算法平均空间复杂度为。

9.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

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

习题1一、选择题1.数据结构通常是研究数据的()及它们之间的相互联系。

A.存储结构和逻辑结构B.存储和抽象C.联系和抽象D.联系与逻辑2.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构3.数据处理的基本单位是()。

A.数据元素B.数据项C.数据类型D.数据变量4.数据结构中线性结构中元素对应关系为()。

A.一对一B.一对多C.多对多D.无关系5.数据结构中树形结构中元素对应关系为()。

A.一对一B.一对多C.多对多D.无关系6.数据结构中图形结构中元素对应关系为()。

A.一对一B.一对多C.多对多D.无关系7.数据在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构8.非线性结构中的每个结点()。

A.无直接前趋结点B.无直接后继结点C.只有一个直接前趋结点和一个直接后继结点D.可能有多个直接前趋结点和多个直接后继结点9.链式存储的存储结构所占存储空间()。

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.每一个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是()存储方式。

A.顺序B.链式C.索引D.散列15.以下任何两个结点之间都没有逻辑关系的是()。

A.图形结构B.线性结构C.树形结构D.集合16.在数据结构中,与所使用的计算机无关的是()。

A.物理结构B.存储结构C.逻辑结构D.逻辑和存储结构17.下列四种基本逻辑结构中,数据元素之间关系最弱的是()。

A.集合B.线性结构C.树形结构D.图形结构18.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A.逻辑结构B.存储结构C.逻辑实现D.存储实现19.每一个存储结点只含有一个数据元素,存储结点存放在连续的存储空间,另外有一组指明结点存储位置的表,该存储方式是()存储方式。

A.顺序B.链式C.索引D.散列20.算法能正确的实现预定功能的特性称为算法的()。

A.正确性B.易读性C.健壮性D.高效性21.算法在发生非法操作时可以做出处理的特性称为算法的()。

A.正确性B.易读性C.健壮性D.高效性22.下列时间复杂度中最坏的是()。

A.O(1) B.O(n) C.O(log2n) D.O(n2)23.在下面的程序段中,对x的赋值语句的频度为()。

for( i=1;i<n;i++)for(j=1;j<n;j++)x++;A.O(2n) B.O(n) C.O(n2) D.O(log2n)二、填空题1.常见的数据结构有集合、线性结构、结构、结构。

2.算法的5个重要特性是有穷性、、可行性、输入、。

3.评价算法的优劣通常主要考虑算法的和这两方面。

4.线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

5.数据的存储结构又叫。

6.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的的有限集合。

7.算法的空间复杂度是指该算法所耗费的,它是该算法求解问题规模n的函数。

8.算法是一个的集合,算法效率的度量可以分为和。

9.若一个算法中的语句频度之和为T(n)=7n+4n2,则算法的时间复杂度为。

10.设有一组数据元素需存储,为了方便查找某元素,数据宜采用存储结构;为了方便插入与删除某元素,数据宜采用存储结构。

三、判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。

()2.一个数据结构是由一个逻辑结构和这个逻辑结构上一个基本运算集构成的整体。

()3.数据元素是数据的最小单位。

()4.数据的逻辑结构和数据的存储结构是相同的。

()5.程序和算法原则上没有区别,所以在讨论数据结构时可以通用。

()6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

()7.数据的存储结构是数据的逻辑结构的存储映像。

()习题2一、选择题1.下面关于线性表的叙述中,错误的是()。

A.线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

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

2.在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为()。

A.O(1)B.O(n)C.O(n2)D.O(log2n)3.两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素前驱的条件是()。

A.P->next == Q->next B.P->next == QC.Q->next == P D.P == Q4.在单链表中,增加头结点的目的是()。

A.使单链表至少有一个结点B.标志表中首结点的位置C.方便运算的实现D.说明该单链表是线性表的链式存储结构5.在顺序表中,只要知道(),就可以求出任意一个结点的存储地址。

A.基地址B.结点大小C.向量大小D.基地址和结点大小6.链表不具备的特点是()。

A.随机访问B.不必事先估计存储空间C.插入删除时不需移动元素D.所需空间与线性表成正比7.在()的运算中,使用顺序表比链表好。

A.插入B.根据序号查找C.删除D.根据元素查找8.在单链表指针为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;9.用链表表示线性表的优点是()。

A.便于进行插入和删除操作B.便于随机存取C.占用的存储空间较顺序表少D.元素的物理顺序与与逻辑顺序一致10.在一个长度为n的顺序表中,若要删除第i(1≤i≤n)个元素,则需向前移动()个元素。

A.n-i+1 B.n-i-1 C.n-i D.i11.在一个长度为n的顺序表中,若要在第i(1≤i≤n)个元素前插入一个元素时,则需向后移动()个元素。

A.n-i+1 B.n-i-1 C.n-i D.i12.设p为指向单循环链表上某结点的指针,则*p的直接前驱()。

A.找不到B.查找时间复杂度为O(1)C.查找时间复杂度为O(n)D.查找结点的次数约为n13.等概率情况下,在有n个结点的顺序表上做插入结点运算,需平均移动结点的数目为()。

A.n B.(n-1)/2 C.n/2 D.(n+1)/214.以下链表结构中,从当前结点出发能够访问到任意结点的是()。

A.单向链表和双向链表B.循环链表和单向链表C.循环链表和双向链表D.单向链表、双向链表和循环链表15.对具有n个结点的线性表进行插入或删除操作,所需的算法时间复杂度为()。

A.O(n2) B.O(nlog2n)C.O(log2n) D.O(n)二、填空题1.线性表L=(a1,a2,…,a n)采用顺序存储,假定删除表中任意元素的概率相同,则删除一个元素平均需要移动元素的个数是。

2.顺序表相对于链表的优点是:和随机存取;链表相对于顺序表的优点是:方便。

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

4.在长度为n的顺序表中,如果要在第i个元素前插入一个元素,要后移个元素。

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

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

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

8.在一个双链表中,设指针p是指向该表中待删除的结点,则需要执行的操作为:。

9.若对一个线性表经常进行查找操作,而很少进行插入和删除操作时,则采用存储结构为宜,相反,若经常进行的是插入和删除操作时,则采用存储结构为宜。

三、判断题1.线性表的链式存储结构优于顺序存储结构。

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

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

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

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

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

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

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

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

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

()习题3一、选择题1.对于栈操作数据的原则是()。

A.先进先出B.后进先出C.后进后出D.不分顺序2.有6个元素按6,5,4,3,2,1 的顺序进栈,问下列()不是合法的出栈序列?A.5 4 3 6 1 2B.4 5 3 1 2 6C.3 4 6 5 2 1D.2 3 4 1 5 63.插入和删除只能在一端进行的线性表,称为()。

A.队列B.循环队列C.栈D.循环栈4.输入序列为ABC,可以变为CBA时,经过的栈操作为()。

A.push,pop,push,pop,push,pop B.push,push,push,pop,pop,popC.push,push,pop,pop,push,pop D.push,pop,push,push,pop,pop5.设有编号为1,2,3,4的四辆列车,顺序进入一个栈结构的站台,下列不可能的出站顺序为()。

A.1234 B.1243C.1324 D.14236.如果以链表作为栈的存储结构,则出栈操作时()。

A.必须判别栈是否满B.必须判别栈是否空C.必须判别栈元素类型D.队栈可不做任何判别7.顺序栈存储空间的实现使用()存储栈元素。

A.链表B.数组C.循环链表D.变量8.在C语言中,一个顺序栈一旦被声明,其占用空间的大小()。

相关文档
最新文档