数据结构.docx
- 文档编号:26857522
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:12
- 大小:64.09KB
数据结构.docx
《数据结构.docx》由会员分享,可在线阅读,更多相关《数据结构.docx(12页珍藏版)》请在冰豆网上搜索。
数据结构
第1章绪论
1.填空
(1)从逻辑关系上讲,数据结构主要分为()、()、()和()。
(2)数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:
()和()。
(3)算法在发生非法操作时可以作出处理的特性称为()。
2.选择题
⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A线性结构B非线性结构C存储位置D指针
⑵假设有如下遗产继承规则:
丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
A树B图C线性表D集合
3.判断题
(1)每种逻辑的数据结构,就对应一种相应的物理数据结构
第2章线性表
1.填空
⑵顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是()。
⑶设单链表中指针p指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为()。
⑸非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足()。
⑹在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是();
删除开始结点的操作序列为()。
2.选择题
⑴线性表的顺序存储结构是一种()的存储结构,线性表的链接存储结构是一种()的存储结构。
A随机存取B顺序存取C索引存取D散列存取
⑵线性表采用链接存储时,其地址()。
A必须是连续的B部分地址必须是连续的C一定是不连续的D连续与否均可以
⑶单循环链表的主要优点是()。
A不再需要头指针了
B从表中任一结点出发都能扫描到整个链表;
C已知某个结点的位置后,能够容易找到它的直接前趋;
D在进行插入、删除操作时,能更好地保证链表不断开。
⑷链表不具有的特点是()。
A可随机访问任一元素B插入、删除不需要移动元素
C不必事先估计存储空间D所需空间与线性表长度成正比.
⑸若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋,则采用()存储方法最节省时间。
A顺序表B单链表C双链表D单循环链表
⑽使用双链表存储线性表,其优点是可以()。
A提高查找速度B更方便数据的插入和删除C节约存储空间D很快回收存储空间
⑾在一个单链表中,已知q所指结点是p所指结点的直接前驱,若在q和p之间插入s所指结点,则执行()操作。
As->next=p->next;p->next=s;
Bq->next=s;s->next=p;
Cp->next=s->next;s->next=p;
Dp->next=s;s->next=q;
⑿在循环双链表的p所指结点后插入s所指结点的操作是()。
Ap->next=s;s->prior=p;p->next->prior=s;s->next=p->next;
Bp->next=s;p->next->prior=s;s->prior=p;s->next=p->next;
Cs->prior=p;s->next=p->next;p->next=s;p->next->prior=s;
Ds->prior=p;s->next=p->next;p->next->prior=s;p->next=s
3.判断题
⑴线性表的逻辑顺序和存储顺序总是一致的。
⑵线性表的顺序存储结构优于链接存储结构。
⑷线性结构的基本特征是:
每个元素有且仅有一个直接前驱和一个直接后继。
⑸在单链表中,要取得某个元素,只要知道该元素所在结点的地址即可,因此单链表是随机存取结构。
4.请说明顺序表和单链表各有何优缺点,并分析下列情况下,采用何种存储结构更好些。
⑴若线性表的总长度基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素。
⑵如果n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化。
⑶描述一个城市的设计和规划。
5.算法设计
(1)假设在长度大于1的循环链表中,即无头结点也无头指针,s为指向链表中某个结点的指针,试编写算法删除结点s的前趋结点。
第3章特殊线性表——栈、队列和串
1.填空
⑴设有一个空栈,栈顶指针为1000H,现有输入序列为1、2、3、4、5,经过push,push,pop,push,pop,push,push后,输出序列是(),栈顶指针为()。
⑵栈通常采用的两种存储结构是();其判定栈空的条件分别是(),判定栈满的条件分别是()。
⑶()可作为实现递归函数调用的一种数据结构。
(栈或者队列选一个)
⑸栈和队列是两种特殊的线性表,栈的操作特性是(),队列的操作特性是(),栈和队列的主要区别在于()。
⑹循环队列的引入是为了克服()。
⑺数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为()。
2.选择题
⑴若一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()。
A不确定Bn-iCn-i-1Dn-i+1
⑵设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素从队列输出的元素的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是()。
A6B4C3D2
⑶一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是()。
A54321B45321C43512D12345
⑷设计一个判别表达式中左右括号是否配对的算法,采用()数据结构最佳
A顺序表B栈C队列D链表
⑸在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个()结构。
A栈B队列C数组D线性表
⑹一个队列的入队顺序是1,2,3,4,则队列的输出顺序是()。
A4321B1234C1432D3241
⑺栈和队列的主要区别在于()。
A它们的逻辑结构不一样B它们的存储结构不一样
C所包含的运算不一样D插入、删除运算的限定不一样
⑼设有两个串p和q,求q在p中首次出现的位置的运算称作()。
A连接B模式匹配C求子串D求串长
3.判断题
⑵栈可以作为实现过程调用的一种数据结构。
⑷在循环队列中,front指向队头元素的前一个位置,rear指向队尾元素的位置,则队满的条件是front=rear。
⑸空串与空格串是相同的。
1.在一个具有n个单元的顺序栈中,假定以地址低端(即下标为0的单元)作为栈底,以top作为栈顶指针,当出栈时,top的变化为()。
A不变Btop=0;Ctop=top-1;Dtop=top+1;
3.从栈顶指针为top的链栈中删除一个结点,用x保存被删除结点的值,则执行()。
Ax=top;top=top->next;
Bx=top->data;
Ctop=top->next;x=top->data;
Dx=top->data;top=top->next;
5.设S="I_am_a_teacther",其长度为()。
6.对于栈和队列,无论它们采用顺序存储结构还是链接存储结构,进行插入和删除操作的时间复杂度都是()。
8.简述队列和栈这两种数据结构的相同点和不同点。
第5章树和二叉树
1.填空题
⑶一棵二叉树的第i(i≥1)层最多有()个结点;一棵有n(n>0)个结点的满二叉树共有()个叶子结点和()个非终端结点。
⑷设高度为h的二叉树上只有度为0和度为2的结点,该二叉树的结点数可能达到的最大值是(),最小值是()。
⑹具有100个结点的完全二叉树的叶子结点数为()。
⑺已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点。
则该树中有()个叶子结点。
⑻某二叉树的前序遍历序列是ABCDEFG,中序遍历序列是CBDAFGE,则其后序遍历序列是()。
(10)在有n个叶子的哈夫曼树中,叶子结点总数为(),分支结点总数为()。
2.选择题
⑴如果结点A有3个兄弟,B是A的双亲,则结点B的度是()。
A1B2C3D4
⑶二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。
A空或只有一个结点B高度等于其结点数C任一结点无左孩子D任一结点无右孩子
⑷线索二叉树中某结点R没有左孩子的充要条件是()。
AR.lchild=NULLBR.ltag=0CR.ltag=1DR.rchild=NULL
⑹一个高度为h的满二叉树共有n个结点,其中有m个叶子结点,则有()成立。
An=h+mBh+m=2nCm=h-1Dn=2m-1
⑼设森林中有4棵树,树中结点的个数依次为n1、n2、n3、n4,则把森林转换成二叉树后,其根结点的右子树上有()个结点,根结点的左子树上有()个结点。
An1-1Bn1Cn1+n2+n3Dn2+n3+n4
(10)讨论树、森林和二叉树的关系,目的是为了()。
A借助二叉树上的运算方法去实现对树的一些运算
B将树、森林按二叉树的存储方式进行存储并利用二叉树的算法解决树的有关问题
C将树、森林转换成二叉树
D体现一种技巧,没有什么实际意义
3.判断题
⑴在线索二叉树中,任一结点均有指向其前趋和后继的线索。
⑵在二叉树的前序遍历序列中,任意一个结点均处在其子女的前面。
⑶二叉树是度为2的树。
⑷由树转换成二叉树,其根结点的右子树总是空的。
⑸用一维数组存储二叉树时,总是以前序遍历存储结点。
4.证明:
对任一满二叉树,其分枝数B=2(n0-1)。
(其中,n0为终端结点数)
已知二叉树的中序和后序序列分别为CBEDAFIGH和CEDBIFHGA,试构造该二叉树。
8.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。
9.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。
10.算法设计
⑸以二叉链表为存储结构,编写算法求二叉树中结点x的双亲。
⑹以二叉链表为存储结构,在二叉树中删除以值x为根结点的子树。
第6章图
1.填空题
⑴设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。
⑵任何连通图的连通分量只有一个,即是()。
⑶图的存储结构主要有两种,分别是()和()。
⑸已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。
⑹有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。
⑺图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。
(8)如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。
2.选择题
⑵n个顶点的强连通图至少有()条边,其形状是()。
AnBn+1Cn-1Dn×(n-1)E无回路F有回路G环状H树状
⑶含n个顶点的连通图中的任意一条简单路径,其长度不可能超过()。
A1Bn/2Cn-1Dn
(4)最小生成树指的是()。
A由连通网所得到的边数最少的生成树
B由连通网所得到的顶点数相对较少的生成树
C连通网中所有生成树中权值之和为最小的生成树
D连通网的极小连通子图
(5)下面关于工程计划的AOE网的叙述中,不正确的是()
A关键活动不按期完成就会影响整个工程的完成时间B任何一个关键活动提前完成,那么整个工程将会提前完成C所有的关键活动都提前完成,那么整个工程将会提前完成D某些关键活动若提前完成,那么整个工程将会提前完
3.判断题
(1)用邻接矩阵存储图,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关。
(2)图G的生成树是该图的一个极小连通子图
(3)在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧。
7.已知一个连通图如图所示,试给出图的邻接矩阵和邻接表存储示意图,若从顶点v1出发对该图进行遍历,分别给出一个按深度优先遍历和广度优先遍历的顶点序列。
8.图所示是一个无向带权图,请分别按Prim算法和Kruskal算法求最小生成树。
第7章查找技术(仪器不做)
(3)在各种查找方法中,平均查找长度与结点个数无关的查找方法是()。
2.选择题
(1)设散列表表长m=14,散列函数H(k)=kmod11。
表中已有15、38、61、84四个元素,如果用线性探侧法处理冲突,则元素49的存储地址是()。
3.判断题
⑴二叉排序树的充要条件是任一结点的值均大于其左孩子的值,小于其右孩子的值。
⑵二叉排序树的查找和折半查找的时间性能相同。
计算题
(1)将数列(24,15,38,27,121,76,130)的各元素依次插入一棵初始为空的二叉排序树中,请画出最后的结果并求等概率情况下查找成功的平均查找长度。
第8章排序技术
1.填空题
⑴排序的主要目的是为了以后对已排序的数据元素进行()。
⑶对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。
⑷对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。
2.选择题
⑴下述排序方法中,比较次数与待排序记录的初始状态无关的是()。
A插入排序和快速排序B归并排序和快速排序C选择排序和归并排序D插入排序和归并排序
(2)对初始状态为递增有序的序列进行排序,最省时间的是(),最费时间的是()。
已知待排序序列中每个元素距其最终位置不远,则采用()方法最节省时间。
A堆排序B插入排序C快速排序D直接选择排序
(3)当待排序序列基本有序或个数较小的情况下,最佳的内部排序方法是(),就平均时间而言,()最佳。
(4)设有5000个元素,希望用最快的速度挑选出前10个最大的,采用()方法最好。
A快速排序B堆排序C希尔排序D归并排序
(5)设要将序列(Q,H,C,Y,P,A,M,S,R,D,F,X)中的关键码按升序排列,则()是起泡排序一趟扫描的结果,()是增量为4的希尔排序一趟扫描的结果,()二路归并排序一趟扫描的结果,()是以第一个元素为轴值的快速排序一趟扫描的结果.A(F,H,C,D,P,A,M,Q,R,S,Y,X)B(P,A,C,S,Q,D,F,X,R,H,M,Y)C(A,D,C,R,F,Q,M,S,Y,P,H,X)D(H,C,Q,P,A,M,S,R,D,F,X,Y)E(H,Q,C,Y,A,P,M,S,D,R,F,X)
(6)排序的方法有很多种,()法从未排序序列中依次取出元素,与已排序序列中的元素作比较,将其放入已排序序列的正确位置上。
()法从未排序序列中挑选元素,并将其依次放入已排序序列的一端。
交换排序是对序列中元素进行一系列比较,当被比较的两元素为逆序时,进行交换;()和()是基于这类方法的两种排序方法,而()是比()效率更高的方法;()法是基于选择排序的一种方法,是完全二叉树结构的一个重要应用。
A选择排序B快速排序C插入排序D起泡排序E归并排序
(7)快速排序在()情况下最不利于发挥其长处。
A待排序的数据量太大B待排序的数据中含有多个相同值C待排序的数据已基本有序D待排序的数据数量为奇数
(8)()方法是从未排序序列中挑选元素,并将其放入已排序序列的一端。
A归并排序B插入排序C快速排序
(9)对数列(25,84,21,47,15,27,68,35,20)进行排序,元素序列的变化情况如下:
⑴25,84,21,47,15,27,68,35,20⑵20,15,21,25,47,27,68,35,84⑶15,20,21,25,35,27,47,68,84⑷15,20,21,25,27,35,47,68,84则采用的排序方法是()。
计算题:
已知数据序列为(12,5,9,20,6,31,24),对该数据序列进行排序,写出插入排序、起泡排序、快速排序、简单选择排序、堆排序以及二路归并排序每趟的结果。
3.判断题
⑴如果某种排序算法是不稳定的,则该排序方法没有实际应用价值。
⑵当待排序的元素很大时,为了交换元素的位置,移动元素要占用较多的时间,这是影响时间复杂性的主要因素。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
