数据结构自学考试辅导--应用题

数据结构自学考试辅导--应用题

数据结构自学考试练习题----应用题

1.简述顺序表和链表存储方式的特点。

解:顺序表的优点是可以随机访问数据元素;缺点是大小固定,不利于增减结点(增减操作需要移动元素)。链表的优点是采用指针方式增减结点,非常方便(只需要改变指针指向,不移动结点)。其缺点是不能进行随机访问,只能顺序访问;另外,每个结点上增加指针域,造成额外存储空间增大。

2.在单链表和双向链表中,能否从任意结点出发访问到其他任何一个结点?

在单链表中不能从任意结点(若结点不是第一结点)出发访问到任何一个结点,链表只能从头指针开始,访问到链表中每个结点。在双链表中求前驱和后继都容易,从任何一个结点向前到第一结点,向后到最后结点,可以访问到任何一个结点。

3.线性表有两种存储结构:一是顺序表,二是链表。试问:

(1)如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么?

(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?

(1)选链式存储结构。它可动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除时间复杂度为O(1)。

(2)选顺序存储结构。顺序表可以随机存取,时间复杂度为O (1)。

4.线性表的存储结构分成顺序存储结构(顺序表)和链式存储结构(单链表)。请用类C语言描述这两种结构。

顺序表类型定义:

const maxsize=顺序表的容量

typedef struct

{ datatype data[maxsize];

int last;

}sqlist;

Sqlist L;

单链表类型定义:

typedef struct node *pointer;

struct node

{datatype data;

Pointer next;

};

typedef pointer lklist;

5.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。

链式存储结构一般说克服了顺序存储结构的三个弱点。首先,插入、删除不需移动元素,只修改指针,时间复杂度为O(1);其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受可用内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。6.若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用何种存储结构,为什么?

解:宜采用链式存储结构。因为采用链式结构存储线性表,插入和删除操作需要从头指针起查找插入、删除结点的前驱结点,并修改这些结点的指针域,查找过程需平均移动指针域为表长的一半;而采用顺序结构存储线性表,插入和删除操作需要平均移动表中的一半元素。移动指针域操作比移动元素操作花费的时间少得多。

7.对链表设置头结点的作用是什么?(至少说出两条好处)

解其好处有:

(1)对带头结点的链表,在表的任何结点之前插入结点或删除表中任何结点,所要做的都是修改前一个结点的指针域,因为任何元素结点都有前驱结点(若链表没有头结点,则首元素结点没有前驱结点,在其前插入结点和删除该结点时操作复杂些)。

(2)对带头结点的链表,表头指针是指向头结点的非空指针,因此空表与非空表的处理是一样的。

8.在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?

解:以下分三种链表讨论:

(1)单链表。当已知指针p指向某结点时,能够根据该指针找到其直接后续,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前驱。因此,无法删去该结点。

(2)双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前驱和直接后续,从而可以删除该结点。其时间复杂度为O(1)。

(3)单循环链表。根据已知结点位置,可以直接得到其后相邻的结点(直接后续),又因为是循环链表,所以可以通过查找得到p结点的直接前驱。因此,可以删去p所指结点。其时间复杂度为O(n)。

9.以下单链表分别单独执行下列各程序段,然后画出新的结果示意图。

(1)R->data = P->data;

(2)R->data = P->next->data;

(3)T=P; while(T!=NULL) {T->data = T->data * 2; T = T->next;}

(4)T=P; while(T->next!=NULL) {T->data = T->data * 2; T = T->next;}

10.已知L是带表头结点的非空单链表, P结点既不指向表头结点,也不指向表尾结点. 试从下列提供的答案(即(1)-(13))中选择合适的语句序列填到下划线上。

a.在表首插入S 结点的语句序列是 (7)(5) .(注: 例子)

b.在P结点后插入S 结点的语句序列是________________________.

c.在P结点前插入S 结点的语句序列是________________________.

d.删除P结点的直接后继结点的语句序列是____________________.

e.删除P结点本身的语句序列是_________________________.

(1)P ->next =S;

(2)S->next =P->next;

(3)Q=P;

(4)while (P->next!=Q) P=P->next;

(5)L->next=S;

(6)P->next=L->next;

(7)S->next = L->next;

(8)P->next=P->next->next;

(9)while (P->next!=NULL) P=P->next;

(10)Q=P->next;

(11)P=P->next;

(12)P=L;

(13)free(Q);

11.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的站台,始写出这四辆车开

出车站的所有可能的顺序。

12.设有编号为1,2,3,4,5,6的六辆列车,顺序进入一个栈式结构的站台,问:能否得到编号序列为435612和135426的出站顺序,并说明为什么不能得到或者如何得到。

13.有5 个元素,其入栈次序为:A ,B ,C ,D ,E ,在各种可能的出栈次序中,以元素C ,D 最先出栈(即C 第一个且D 第二个出栈)的次序有哪几个?

三个:CDEBA ,CDBEA ,CDBAE

14.给出数组A [3..8,2..6],当它在内存中按行存放和按列存放时,分别写出数组元素A[i,j]地址计算公式(设每个元素占两个存储单元)。

LOC (A[i,j])=LOC (A[3,2])+[(i-3)*5+(j-2)]×2 (按行存放)

LOC (A[i,j])=LOC (A[3,2])+[(j-2)*6+(i-3)]×2 (按列存放)

15.如果输入序列为1 2 3 4 5 6,试问能否通过栈结构得到以下两个序列:4 3 5 6 1 2和1 3 5 4 2 6;请说明为什么不能或如何才能得到。

输入序列为123456,不能得出435612,其理由是,输出序列最后两元素是12,前面4个元素(4356)得到后,栈中元素剩12,且2在栈顶,不可能栈底元素1在栈顶元素2之前出栈。

得到135426的过程如下:1入栈并出栈,得到部分输出序列1;然后2和3入栈,3出栈,部分输出序列变为:13;接着4和5入栈,5,4和2依次出栈,部分输出序列变为13542;最后6入栈并退栈,得最终结果135426。

16.

对下列稀疏矩阵, 写出它的顺序存储的三元组形式.

--0007001500000180000024000140000300000

0000

009120 17.已知一颗树的边集合为{, , , , , , , , , , , , }。请画出这颗树,并回答下列问题:(1)哪个是根结点?(2)哪些是叶子结点?(3)哪些是结点G 的双亲、祖先和后代?(4)结点B 和N 的层次号分别是多少?(5)树的深度是多少?

18.画出下图所示的二叉树的二叉链表存储结构。

19.已知二叉树的前序遍历序列和中序遍历序列分别是:B,A,C,D,F,E,G 和D,C,A,F,G,E,B,

试画出该二叉树。

20.试用孩子兄弟(左孩子右兄弟)链表表示法画出下列树T的存储结构图。

21.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,...n m个度为m的结点,问该树中有多少片叶子?

n0=1+n2+2n3+……+(m-1)n m

22..对下面的一般树

(1)写出它的先序遍历和后序遍历的结果;

(2)画出它相应的二叉树;

(3)对相应的二叉树,写出它的先序遍历、中序遍历和后序遍历的结果

23.找出所有满足下列条件的二叉树;

(a) 它们在先序遍历和中序遍历时,得到的结点访问序列相同;

(b) 它们在后序遍历和中序遍历时,得到的结点访问序列相同;

(c) 它们在先序遍历和后序遍历时,得到的结点访问序列相同。

24.

画出下列一般树所对应的二叉树, 同时写出一般树的前序遍历和后序遍历的结果,以及所对应的二叉树的前序遍历、中序遍历和后序遍历的结果。

25.

对右面的一般树

(4)写出它的先序遍历和后序遍历的结果;

(5)画出它相应的二叉树;

(6)对相应的二叉树,写出它的先序遍历、

中序遍历和后序遍历的结果

26.画出下列一般树所对应的二叉树, 同时写出一般树的前序遍历和后序遍历的结果,以及所对应的二叉树的前序遍历、中序遍历和后序遍历的结果.

27.已知一棵二叉树的中根序列和后根序列分别为BDCEAFHG和

DECBHCFA,试画出这棵二叉树。

28.分别画出含3个结点的树和二叉树的所有不同形态。

29.分别画出在线性表(a,b,c,d,e,f,g)中进行二分查找关键码e和g的过程。

30.一棵二叉排序树的结构如下图,结点的值为1~8 ,请标出各结点的值。

31.设有关键码序列{20,35,40,15,30,25,38}. 试从空树开始,画出二叉排序树的建树过程,然后依次删除结点35和25.

32.给定表(19,14,22,02,56,21,85,24,55,10,13),试按元素在表中的次序将它们依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树。

33.给定有序表(87,155,188,210,451,500,520,586,655,680,710,788,800,900),用二分查找法在有序表中查找586,试用图示法表示出查找过程。

34.给定关键字序列11,78,10,1,3,2,4,21,分别用顺序查找、二分查找、二叉排序树查找来实现查找运算,试画出它们的对应存储形式(顺序查找的顺序表,二分查找的判定树,二叉排序树查找的二叉排序树),并求出每一种查找的成功平均查找长度。

35.依次读入给定的整数序列{7,16,4,8,20,9,6,18,5},完成下列操作:

1)构造一棵二叉排序树并计算在等概率情况下该二叉排序树的平均查找长度ASL;

2)若变更序列中元素的排列,可构造出平均查找长度达到最小的二叉排序树。试构造出此二叉排序树。36.以关键字序列(49,38,65,97,76,13,27,52)为例,手工执行堆排序和归并排序算法,写出每一趟结束时的关键字状态。

37.以关键字序列(49,38,65,97,76,13,27,52)为例,手工执行快速排序和希尔排序(增量序列为d[1]=5,3,2,1)算法,写出每一趟结束时的关键字状态。

38.设待排序文件的关键字键值为(512,275,908,677,503,765,612,897,154,170)以第一键值为枢轴进行快速排序(按关键字键值递增顺序),请给出一趟扫描的过程和结果。

170,275,154,503,512,765,612,897,677,908

39.已知序列{17,18,60,40,7,32,73,65,85},请给出采用起泡法对该序列作升序排列的每一趟的结果。

第一趟:17,18,40,7,32,60,65,73,85

第二趟:17,18,7,32,40,60,65,73,85

第三趟:17,7,18,32,40,60,65,73,85

第四趟:7,17,18,32,40,60,65,73,85

第五趟:7,17,18,32,40,60,65,73,85

第5趟无元素交换,排序结束

40.已知某文件的记录关键字键值为{50,10,50,40,45,85,80},选择一种从平均性能而言是最佳的排序方法进行排序,且说明其稳定性。

平均性能最佳的排序方法是快速排序,该排序方法不稳定。

初始序列: 50,10,50,40,45,85,80

一趟排序: [45,10,50,40] 50 [85,80]

二趟排序: [40,10] 45 [50] 50 [80] 85

三趟排序: 10,40,45,50,50,80,85

41.有一随机数组(25,84,21,46,13,27,68,35,20),现采用某种方法对它们进行排序,其每趟排序结果如下, 则该排序方法是什么? 该种排序方法的时间复杂性为多少?空间复杂度为多少?

初始:25,84,21,46,13,27,68,35,20

第一趟:20,13,21,25,46,27,68,35,84

第二趟:13,20,21,25,35,27,46,68,84

第三趟:13,20,21,25,27,35,46,68,84

快速排序时间复杂度从平均时间性能而言为O(nlog2n) 最坏情况下为O(n2)

空间复杂度为O(log2n)

数据结构专科辅导六图的辅导练习题及解答

数据结构专科辅导六 ------图的辅导练习题及解答 (一)单项选择题 1.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的入度数之和为( )。 A s B s-1 C s+1 D n 2.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的度数之和为( )。 A s B s-1 C s+1 D 2s 3.在一个具有n个顶点的无向图中,若具有e条边,则所有顶点的度数之和为( )。 A n B e C n+e D 2e 4.在一个具有n个顶点的无向完全图中,则所含的边数为( )。 A n B n(n-1) C n(n-1)/2 D n(n+1)/2 5.在一个具有n个顶点的有向完全图中,则所含的边数为( )。 A n B n(n-1) C n(n-1)/2 D n(n+1)/2 6.在一个无权图中,若两顶点之间的路径长度为k,则该路径上的顶点数为( )。 A k B k+1 C k+2 D 2k 7.对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为( )。 A 0 B 1 C n D n+1

8.若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用( )次深度优先搜索遍历的算法。 A k B 1 C k-1 D k+1 9.若要把n个顶点连接为一个连通图,则至少需要( )条边。 A n B n+1 C n-1 D 2n 10.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为( )。 A n B n e C e D 2 e 11.在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素个数为( )。 A n B n e C e D 2 e 12.在一个具有n个顶点和e条边的无向图的邻接表中,边结点的个数为( )。 A n B n e C e D 2 e 13.在一个具有n个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为( )。 A n B 2n C e D 2e 14.在一个无权图的邻接表表示中,每个边结点至少包含( )域。 A 1 B 2 C 3 D 4 15.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应邻接表中该顶点单链表中的边结点数为( )。 A k1 B k2 C k1-k2 D k1+k2

《数据结构》应用题练习

《数据结构》应用题练习 1、将下图所示的森林转换成二叉树。 2、已知一棵二叉树的中序序列和后序序列分别如下 先序序列:A B D E C F H K G 中序序列:B E D A H F K C G 请完成:(1)画出该二叉树(2分); (2)写出该二叉树的后序序列(2分)。 3、对于一组给定的权值W={4,18,6,22,10,15},请完成: (1)建立相应的哈夫曼树; (2)计算其WPL值。 4、如下所示的有向图,回答下面问题: (1)该图是强连通的吗?若不是,给出强连通分量。 (2)请给出图的邻接矩阵 (3)请给出图的邻接表和逆邻接表。 (4) 计算各点的入度和出度 5、下图是一个带权无向图,要求: (1)画出以V1为初始顶点、按Prim算法构造最小生成树的过程;

(2)求出最小生成树的总代价; (3)Prim算法求最小生成树适用于什么情形? 6下图是一个带权无向图,要求: (1)画出以V1为初始顶点、按克鲁斯卡尔算法构造最小生成树的过程; (2)求出最小生成树的总代价; (3)克鲁斯卡尔算法求最小生成树适用于什么情形? 7、设有一组初始记录关键字为(10, 2, 26, 4, 18, 24, 21, 15, 8,) 要求: (1)构造一棵二叉排序树并给出构造过程。 (2)查找关键字2需要和哪些结点进行比较? (3)等概率查找下的ASL是多少? 8、已知哈希函数为H(key)=key%11,哈希表长度为13,用平方探测再散列的方法处理冲突。 表中已依次存放了关键字为33、23、32、54和42的5个记录: (1)现将关键字65填入哈希表,确定其存储地址(要求写出每一步的哈希地址计算表达式)。 (2)若查找关键字65的记录,需依次与哪些关键字进行比较? (3)为确保查找正确,如果删除关键字为54的记录应作何处理? 9关键码集为{47,7,29,11,16,92,22,8,3},散列表表长为m=11,散列函数为H(key)=key mod 11 ,线性探测法处理冲突。 (1)生成哈希表 (2)计算查找成功的ASL

数据结构应用题

北京语言大学网络教育学院 《数据结构》 【应用题】( 1、已知序列(12,4,17,10,7,30),用直接选择排序法对其进行递增排序,写出每一趟的排序结果。答:第1趟:4 12 17 10 7 30 第2趟:4 7 17 10 12 30 第3趟:4 7 10 17 12 30 第4趟:4 7 10 12 17 30 第5趟:4 7 10 12 17 30 2、单链表结点的类型定义如下: typedef struct LNode { int data; struct LNode *next; } LNode, *Linklist; 写一算法,将带头结点的有序单链表A和B合并成一新的有序表C。 (注:不破坏A和B的原有结构) 答:Merge(Linklist A, Linklist B, Linklist &C ) void Merge(Linklist A, Linklist B, Linklist &C) { C=(Linklist)malloc(sizeof(LNode)); pa=A->next; pb=B->next; pc=C; while(pa&&pb) { pc->next=(Linklist)malloc(sizeof(LNode)); pc=pc->next; if(pa->data<=pb->data) { pc->data=pa->data; pa=pa->next;} else { pc->data=pb->data; pb=pb->next;} } if(!pa) pa=pb; while(pa) { pc->next=(Linklist)malloc(sizeof(LNode)); pc=pc->next; pc->data=pa->data; pa=pa->next; } pc->next=NULL; } 3、已知一棵非空二叉树,其按中序和后序遍历的结果分别为: 中序:CGBAHEDJFI 后序:GBCHEJIFDA 请画出这棵二叉树,并写出其前序遍历的结果。 答:前序遍历结果:ACBGDEHFJI 4、已知字符:C1,C2,C3,C4,C5,C6的权分别为:17,5,16,4,8,11,请构造相应的赫夫曼树,并

数据结构应用题练习

数据结构应用题练习 一、简介 数据结构是计算机科学中的重要概念,是指数据组织、管理和存储的方式。它是计算机处理和分析数据的基础,在各个领域都有广泛的应用。本文将通过几个数据结构应用题的练习,展示数据结构在实际问题中的应用。 二、链表应用题 链表是一种常见的数据结构,在许多场景中都有广泛的应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用链表来存储并实现以下操作: 1. 添加学生信息 2. 删除学生信息 3. 查找学生信息 4. 修改学生信息 三、栈应用题 栈是一种后进先出(LIFO)的数据结构,在很多应用中都有不可或缺的地位。以网页浏览器的前进和后退功能为例,使用栈可以很方便地实现该功能。请描述如何使用栈来实现浏览器的前进和后退功能,并分析算法的时间复杂度。

四、队列应用题 队列是一种先进先出(FIFO)的数据结构,常用于处理排队等场景。现假设有一个任务队列,多个任务需要按照顺序执行。请使用队列来 存储任务,并实现以下操作: 1. 添加任务到队列 2. 从队列中取出并执行任务 3. 判断队列是否为空 4. 清空队列中的所有任务 五、树应用题 树是一种重要的非线性数据结构,在很多领域都有广泛应用。假设 有一组学生的信息,包括学生姓名、年龄和成绩,请使用树来存储这 些信息,并实现以下操作: 1. 添加学生信息到树中 2. 从树中查找指定学生的信息 3. 删除指定学生的信息 4. 获取树中所有学生的平均成绩 六、图应用题

图是一种用于描述事物之间关系的数据结构,在网络分析、路径规划等领域有广泛应用。假设有一张地图,其中包含若干城市和连接它们的道路,请使用图来存储地图信息,并实现以下操作: 1. 添加城市和道路到图中 2. 查找两个城市之间的最短路径 3. 删除某个城市及其相关的道路 4. 统计图中有多少个孤立的城市 七、哈希表应用题 哈希表是一种通过散列函数实现高效存储和查找的数据结构,在很多场景中都有广泛应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用哈希表来存储这些信息,并实现以下操作: 1. 添加学生信息到哈希表中 2. 从哈希表中查找指定学生的信息 3. 删除指定学生的信息 4. 统计哈希表中学生信息的个数 八、总结 以上是几个常见的数据结构应用题的练习,通过这些练习可以更深入地理解数据结构的应用和算法的设计。数据结构是计算机科学中非常重要的一个领域,其应用广泛且多样化。在实际问题中,合理选择

《数据结构》应用题参考习题

《数据结构》应用题参考习题数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储和管理方式,以及不同数据结构对算法执行效率的影响。在实际 应用中,数据结构起到了至关重要的作用。本文将介绍一些《数据结构》的应用题,并给出相应的参考习题。 一、栈的应用题 1. 符号匹配问题 问题描述:给定一个字符串,在其中包含了一些圆括号"()"、方括号"[]"和花括号"{}",判断字符中的括号是否匹配。 例题:判断字符串"{[()]()}"是否匹配。 解题思路:利用栈的先进后出特点,遍历字符串中的每个字符。如 果是左括号,则入栈;如果是右括号,则判断栈顶元素是否与之匹配。 参考习题:编写一个程序,实现括号匹配的功能,并输出匹配结果。 二、队列的应用题 1. 循环队列的应用 问题描述:设计一个循环队列,实现入队、出队等基本操作。 解题思路:利用数组实现循环队列,需要设置一个队头指针front 和一个队尾指针rear。入队操作时,将元素添加到rear位置;出队操作时,返回front位置元素,并将front后移。

参考习题:实现一个循环队列,并进行相关操作的测试。 三、链表的应用题 1. 单链表反转 问题描述:给定一个单链表,将其反转。 例题:将链表1->2->3->4->5反转为5->4->3->2->1。 解题思路:利用三个指针prev、cur和next,依次遍历链表,并修 改指针指向实现链表的反转。 参考习题:编写一个程序,实现单链表反转,并输出反转后的链表。 四、树的应用题 1. 二叉树的遍历 问题描述:给定一个二叉树,实现它的前序遍历、中序遍历和后序 遍历。 解题思路:分别使用递归和迭代的方式实现二叉树的前序遍历、中 序遍历和后序遍历。 参考习题:编写一个程序,实现二叉树的前序遍历、中序遍历和后 序遍历,并输出遍历结果。 五、图的应用题 1. 图的最短路径

数据结构辅导七

数据结构辅导七 ------查找的辅导练习题及解答 (一)单项选择题 1.若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( )。 A n B n+1 C (n-1)/2 D (n+1)/2 2. 对长度为10的顺序表进行查找,若查找前面5个元素的概率相同,均为1/8,查找后面5个元素的概率相同,均为3/40,则查找任一元素的平均查找长度为( )。 A 5.5 B 5 C 39/8 D 19/4 3. 对长度为3的顺序表进行查找,若查找第一个元素的概率为1/2,查找第二个元素的概率为1/3,查找第三个元素的概率为1/6,则查找任一元素的平均查找长度为( )。 A 5/3 B 2 C 7/3 D 4/3 4. 对长度为n的单链有序表,若查找每个元素的概率相等,则查找任一元素的平均查找长度为( )。 A n/2 B (n+1)/2 C (n-1)/2 D n/4 5. 对于长度为n的顺序存储的有序表,若采用二分查找,则对所有元素的最长查找长度为( )的值的向上取整。 A ?log2(n+1)? B ?log2n? C ?n/2? D ?(n+1)/2? 6. 对于长度为n的顺序存储的有序表,若采用二分查找,则对所有元素的最长查找长度为( )的值的向下取整加1。 A ?log2(n+1)? B ?log2n? C ?n/2? D ?(n+1)/2? 7. 对于长度为9的顺序存储的有序表,若采用二分查找,在等概率情况下的平均查找长度为( )的9分之一。 A 20 B 18 C 25 D 22 8. 对于长度为18的顺序存储的有序表,若采用二分查找,则查找第15个元素的查找长度为( )。 A 3 B 4 C 5 D 6 9. 对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用二分查找,则查找元素26的查找长度为( )。 A 2 B 3 C 4 D 5 10. 对具有n个元素的有序表采用二分查找,则算法的时间复杂性为( )。 A O(n) B O(n2) C O(1) D O(log2n) 11. 在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为k个子表,每个子表的长度均为n/k,则索引查找的平均查找长度为( )。 A n+k B k+n/k C (k+n/k)/2 D (k+n/k)/2+1 12. 在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为若干个子表,每个子表的长度均为s,则索引查找的平均查找长度为( )。 A (n+s)/2 B (n/s+s)/2+1 C (n+s)/2+1 D (n/s+s)/2 13. 在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12子表,每个子表的长度均为12,则索引查找的平均查找长度为( )。 A 13 B 24 C 12 D 79 14. 在索引查找中,若用于保存数据元素的主表的长度为117,它被均分为9子表,则

数据结构自学考试辅导--应用题

数据结构自学考试辅导--应用题 数据结构自学考试练习题----应用题 1.简述顺序表和链表存储方式的特点。 解:顺序表的优点是可以随机访问数据元素;缺点是大小固定,不利于增减结点(增减操作需要移动元素)。链表的优点是采用指针方式增减结点,非常方便(只需要改变指针指向,不移动结点)。其缺点是不能进行随机访问,只能顺序访问;另外,每个结点上增加指针域,造成额外存储空间增大。 2.在单链表和双向链表中,能否从任意结点出发访问到其他任何一个结点? 在单链表中不能从任意结点(若结点不是第一结点)出发访问到任何一个结点,链表只能从头指针开始,访问到链表中每个结点。在双链表中求前驱和后继都容易,从任何一个结点向前到第一结点,向后到最后结点,可以访问到任何一个结点。 3.线性表有两种存储结构:一是顺序表,二是链表。试问: (1)如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么? (2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么? (1)选链式存储结构。它可动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除时间复杂度为O(1)。 (2)选顺序存储结构。顺序表可以随机存取,时间复杂度为O (1)。 4.线性表的存储结构分成顺序存储结构(顺序表)和链式存储结构(单链表)。请用类C语言描述这两种结构。 顺序表类型定义: const maxsize=顺序表的容量

typedef struct { datatype data[maxsize]; int last; }sqlist; Sqlist L; 单链表类型定义: typedef struct node *pointer; struct node {datatype data; Pointer next; }; typedef pointer lklist; 5.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。 链式存储结构一般说克服了顺序存储结构的三个弱点。首先,插入、删除不需移动元素,只修改指针,时间复杂度为O(1);其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受可用内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。6.若频繁地对一个线性表进行插入和删除操作,则该线性表宜采用何种存储结构,为什么? 解:宜采用链式存储结构。因为采用链式结构存储线性表,插入和删除操作需要从头指针起查找插入、删除结点的前驱结点,并修改这些结点的指针域,查找过程需平均移动指针域为表长的一半;而采用顺序结构存储线性表,插入和删除操作需要平均移动表中的一半元素。移动指针域操作比移动元素操作花费的时间少得多。 7.对链表设置头结点的作用是什么?(至少说出两条好处) 解其好处有:

数据结构应用题练习

1、假设一棵二叉树的层序序列是ABCDEFGHIJ 和中序序列是DBGEHJACIF,请画出该树。 21、有一个完全二叉树按层次顺序存放在一维数组中,如下所示: 请指出结点P 的父结点,左子女,右子女。 3、给出下列二叉树的先序序列。 4、已知二叉树的先序遍历序列为ABCDEFGH ,中序遍历序列为CBEDFAGH ,画出二叉树。 答案:二叉树形态 A F H G D E C B (2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C ①画出这棵二叉树。 ②画出这棵二叉树的后序线索树。 ③将这棵二叉树转换成对应的树(或森林)。 A B F D ( C E H G

(1) (2) 1、已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H, A,C,K,I,L,F。 i.写出该二叉树的后序序列; ii.画出该二叉树; iii.求该二叉树的高度(假定空树的高度为-1)和度为2、度为1、及度为0的结点个数。 该二叉树的后序序列为:J,G,D,H,E,B,K,L,I,F,C,A。 该二叉树的形式如图所示: 该二叉树高度为:5。 度为2的结点的个数为:3。 度为1的结点的个数为:5。 度为0的结点个数为:4。 5、试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。 答案:

2 1 5 6 1118 73 4 12 30 WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=69 6、已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL 。 答案:(1)树形态: 3 2 5 5 1019 9 7 6 13 32 (2)带权 路 径 长 度 : WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79 (3) 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。 ① 试为这8个字母设计赫夫曼编码。 ② 试设计另一种由二进制表示的等长编码方案。 ③ 对于上述实例,比较两种方案的优缺点。 解:方案1;哈夫曼编码 先将概率放大100倍,以方便构造哈夫曼树。 w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6], (7,10)】, ……19, 21, 32 (100) (40) (60) 19 21 32 (28) () (11) 7 10 6 (5)

数据结构应用题

一、应用题 1. 已知关键字序列为:(74,33,52,41,13,88,66,59)哈希表长为9,哈希函数为:H (k)=k %9,解决冲突用线性补偿探测法 (取Q=5),试构造哈希表,并求出等概率下查找成功的平均查找长度。 【答案】 (1)哈希表: 0 1 2 3 4 5 6 7 8 59 74 88 13 41 33 52 66 2 1 2 1 1 1 1 2 (2) ASL=(5*1+3*2)/8=11/8 2. 已知一个AOV 网如图所示。 (1)试画出它的邻接链表。(顶点号递减出现在各邻接表中) (2)试写出按照拓扑排序算法得到的拓扑序列。 V 6 V 1 V 2 V 4 V 5 V 3 【答案】 (1) 1 v 1 0 6 v 6 1 5 v 5 3 3 V 3 2 4 v 4 0 2 v 2 2 ∧ 6 5 3 ∧ 5 ∧ 5 ∧ 2 ∧ 3 2 ∧ (2)v 4,v 6,v 1,v 3,v 5,v 2 3. 已知线性表的存储结构为顺序表,阅读下列 算法,并回答问题: (1)设线性表L=(21,-7,-8,19,0,-11, 34,30,-10),写出执行f30(&L)后的L 状态; (2)简述算法f30的功能。 void f30 (SeqList *L) { int i,j; for (i=j=0;ilength; i++) if(L->data[i]>=0){ if(i!=j)L->data[j]=L->data[i]; j++; } L->length=j; } 【答案】 (1)L=(21,19,0,34,30) (2) 删除顺序表中小于0的数。 4. 已知关键字序列{34,26,47,12,63,41,22,59},利用堆排序的方法对其排序。 (1)写出在构成初始堆后关键字的排列情况。 (2)写出在堆排序的过程中输出前4个记录时,每次调整后关键字的排列情况。 【答案】 (1)初始堆:{12,26,22,34,63,41,47,59} (2)输出12后:{22,26,41,34,63,59,47} 输出22后:{26,34,41,47,63,59} 输出26后:{34,47,41,59,63} 输出34后:{41,47,63,59} 5. 请用克鲁斯卡尔算法构造下图所示网络的最小生成树。 14 v 1 v 4 v 5 v 2 v 3 V 6 10 8 18 22 12 10 16 19 20 【答案】 最小生成树如下图所示:

《数据结构》应用题参考习题

一.《树》应用题 1. 已知一棵树边的集合为{},请画出这棵树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶子结点? (3)哪个是结点g的双亲? (4)哪些是结点g的祖先? (5)哪些是结点g的孩子? (6)哪些是结点e的孩子? (7)哪些是结点e的兄弟?哪些是结点f的兄弟? (8)结点b和n的层次号分别是什么? (9)树的深度是多少? (10)以结点c为根的子树深度是多少? 2. 一棵度为2的树与一棵二叉树有何区别。 3. 试分别画出具有3个结点的树和二叉树的所有不同形态? 4. 已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。

5. 一棵深度为H的满m叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有m棵非空子树,如果按层次自上至下,从左到右顺序从1开始对全部结点编号,回答下列问题: (1)各层的结点数目是多少? (2)编号为n的结点的父结点如果存在,编号是多少? (3)编号为n的结点的第i个孩子结点如果存在,编号是多少? (4)编号为n的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 6. 找出所有满足下列条件的二叉树: (1)它们在先序遍历和中序遍历时,得到的遍历序列相同; (2)它们在后序遍历和中序遍历时,得到的遍历序列相同; (3)它们在先序遍历和后序遍历时,得到的遍历序列相同; 7. 假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请写出该二叉树的后序遍历序列。 8. 假设一棵二叉树的后序序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,请写出该二叉树的后序遍历序列。 9. 给出如图1所示的森林的先根、后根遍历结点序列,然后画出该森林对应的二叉树。 10.给定一组权值(5,9,11,2,7,16),试设计相应的哈夫曼树。

数据结构应用题答案2014-7-6

数据结构应用题答案 第2章线性表 1.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。答:操作序列如下:q->rlink = p->rlink ; p->rlink = q ; q->rlink->llink = q ; q->llink = p ; 注意答案不唯一 第3章栈和队列 1.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序。 答:共计14种,分别是:1234, 1243, 1324, 1342, 1432, 2134, 2143, 2341, 2314,2431, 3214, 3241, 3421, 4321 2.如果输入序列为1,2,3,4,5,6,试问能否通过栈结构得到以下两个序列:4,3,5,6,1,2和1,3,5,4,2,6;请说明为什么不能或如何才能得到。 答:(1)不能得到4,3,5,6,1,2 ;因为1,2,3,4入栈后;4,3出栈;得到序列4,3;栈中还有1,2;5入栈后即出栈,得到序列4,3,5;6入栈后即出栈,得到序列4,3,5,6;此时,栈中还有1,2;必须2先出栈,然后1再出栈,1不可能在2之前出栈。故而得不到该序列。 (2)能得到输出顺序为1,3,5,4,2,6的序列。得到的操作如下:1入栈后即出栈,得到序列1;2,3入栈后3即出栈,得到序列1,3;4,5入栈后,5出栈,4出栈,得到序列1,3,5,4;2出栈,得到序列1,3,5,4,2;6入栈后即出栈,得到序列1,3,5,4,2,6。 3.假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’和‘ababab’则不是回文。假设一字符序列已存入计算机,请用堆栈判断其是否为回文,简述算法。 答:方法一:使用数据结构:循环队列和顺序栈。算法思路为: 1.将字符串按照用户输入的顺序分别入栈和队列 2.分别从队列和栈中取出首个字符 3.比较取出的字符,若相等,继续分别从队列和栈中取首个字符;否则跳出循环,并设置标志flag=0; 4.若队列和栈中的字符都取完,则结束,设置标志flag=1; 5.flag=1,表示字符从前往后和从后往前的序列完全匹配,该字符串属于回文 6.flag=0,表示字符从前往后和从后往前的序列不完全匹配,该字符串不属于回文 方法二:使用栈。将字符串的前一半入栈,再依次出栈,与后一半进行比较,若有不等则不是回文;若依次相等,则是回文。 注意:本题要求简答算法思路,并不要求写出具体算法。 4.试写出循环队列判空和判满的条件(队列最大容量为M)。 答:假设循环队列最大存储容量为M 判空:Q.front==Q.rear (1) 判满:(Q.rear+1)%M==Q.front (2) 评分标准:给出(1)和(2)式分别得3分,其他酌情扣分。 5.假设Q[0..10]是一个循环队列,初始状态为front=rear=0,画出做完下列操作后队列的头尾指针的状态变化情况,若不能入队,请指出其元素,并说明理由。 d,e,b,g,h入队;d,e出队;i,j,k,l,m入队;n,o,p入队 答:(图自己根据解答画出)d,e,b,g,h入队;状态1:front=0,rear=5;

数据结构应用题

、应用题(共30分,每题6分) 1.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,…,n k个度为k 的结点,问该树有多少个叶子结点?(6分) 2.对于下面两个图,求出: (1)无向图中每个顶点的度,有向图中每个顶点的入度,出度和度。 (2)是否是连通图/强连通图,如果不是,画出连通分量/强连通分量。(6分) 4 0 3 1 2 0 1 2 4 3

3.分别画出在线性表(a, b, c, d, e, f, g)中进行折半查找,以查关键字等于e、f 和g的过程。(6分) 4.已知一组元素的关键字{46,74,16,53,14,26,40,38,86,65,27,34},利用直接插入 排序法,写出每次向前面的有序表插入一个元素后的排列结果。(6分) 5、将下图转换为二叉树,对转换后的二叉树进行先序、中序、后序遍历序列。(6分) A B C D

五、程序题(20分) 1.将下面算法填完整。(10分,每空2分) int Search_Bin(SSTable ST, KeyType key){ //在有序表ST中折半查找其关键字等于key的数据元素,若找到,则返回该元素//在表中的位置,否则返回0 low=1;high=ST.length; while(low<=high){ mid=____________; if(EQ(key, ST.elem[mid].key)) return ____________; else if(LT(key, ST.elem[mid].key)) high=____________; else low=____________; } return ____________; } 2.将下面算法填完整。(10分,每空2分) void InsertSort(SqList &L){ //对顺序表L作直接插入排序 for(i=2;i<=L.length;++i) if(LT(L.r[i].key, L.r[i-1].key)){

数据结构题库-应用题(上海杉达学院期末总复习题)

《数据结构》――应用题复习概要 2022年4月1.写出执行下列程序段时,语句S的执行次数。 for (i=1; i=i; j--) S; 2.假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的 函数形式表示) int Time(int n) { int count:=0; x:=2; while (xRL = P->RL; P->RL = Q; Q->RL->LL = Q; Q->LL = P; (2)Q->RL = P; P->LL->RL = Q; Q->LL = P->LL; P->LL = Q; (3)P->LL->RL = P->RL; P->RL->LL = P->LL; 4.设栈S的初始状态为空,元素a, b, c, d, e和f依次通过栈S,试分析下列各组出栈次序, 每组所用的最大容量。(1)a,b,c,d,e,f;(2)f,e,d,c,b,a;(3)b,d,c,f,e,a 5.有字符串A+B*C-D,试写出利用栈操作将该字符串序列改为ABC*+D-的操作步骤,这 里用X和S分别表示字符的进栈和出栈操作(例如把字符ABCD改为ACBD的操作步骤为XSXXSSXS)。 XSXXSXXSSSXXSS 6.一棵二叉树的结点数采用顺序存储结构,存于下列数组T中,画出该二叉树。

全国自学考试数据结构导论试题及答案4套

全国自学考试数据结构导论试题及答案4套第一套试题 一、选择题(每题4分,共40分) 1. 下列哪个数据结构是一种非线性结构? A. 数组 B. 栈 C. 队列 D. 树 2. 下列哪种算法不适用于解决排序问题? A. 冒泡排序 B. 快速排序 C. 深度优先搜索 D. 归并排序 3. 在数据结构中,堆的底层实现通常采用哪种数据结构? A. 数组 B. 栈 C. 链表

D. 队列 4. 下列哪个选项是描述图结构的准确说法? A. 图结构是一种线性结构 B. 图结构由节点和指向节点的边构成 C. 图结构不能存储数据 D. 图结构不支持插入和删除操作 5. 下列哪个排序算法具有最坏时间复杂度为O(nlogn)? A. 冒泡排序 B. 插入排序 C. 选择排序 D. 希尔排序 二、填空题(每题4分,共40分) 1. 在二叉树中,每个节点最多有____个子节点。 2. 图的两个顶点之间的路径长度是指连接这两个顶点所需的____数。 3. 链表是一种____结构。 4. 快速排序算法的核心思想是____。 5. 栈和队列都属于线性结构,其主要区别在于____操作的限制。

三、简答题(每题10分,共30分) 1. 请简要描述栈的特点以及栈的应用场景。 2. 请简要介绍图的基本概念,并说明图的应用领域。 3. 请解释递归算法的原理,并给出一个使用递归算法解决问题的例子。 四、编程题(共30分) 请使用任意编程语言实现一个简单的栈数据结构,并编写测试代码进行验证。 第二套试题 一、选择题(每题4分,共40分) 1. 在二叉搜索树中,中序遍历的结果是____。 A. 升序排列 B. 降序排列 C. 随机排序 D. 不确定的排序 2. 在哈希表结构中,解决冲突问题的常用方法是____。 A. 线性探测 B. 链地址法

数据结构辅导七

------查找的辅导练习题及解答 1.若查找每一个元素的概率相等,则在长度为 n 的顺序表上查找任一元素的平均查找长度为( )。 A n B n+1 C (n-1)/2 D (n+1)/2 2. 对长度为 10 的顺序表进行查找,若查找前面5 个元素的概率相同,均为 1/8,查找后面 5 个元素的概率相同,均为 3/40,则查找任一元素的平均查找长度为( )。 A 5.5 B 5 C 39/8 D 19/4 3. 对长度为 3 的顺序表进行查找,若查找第一个元素的概率为 1/2,查找第二个元素的概率为 1/3,查找第三个元素的概率为 1/6,则查找任一元素的平均查找长度为( )。 A 5/3 B 2 C 7/3 D 4/3 4. 对长度为 n 的单链有序表,若查找每一个元素的概率相等,则查找任一元素的平均查找长度为( )。 A n/2 B (n+1)/2 C (n-1)/2 D n/4 5. 对于长度为 n 的顺序存储的有序表,若采用二分查找,则对所有元素的最长查找长度为( )的值的向上取整。 A「log (n+1)] B「log n] C「n/2] D「(n+1)/2] 2 2 6. 对于长度为 n 的顺序存储的有序表,若采用二分查找,则对所有元素的最长查找长度为( )的值的向下取整加 1。 A L log (n+1)」 B L log n」 C L n/2」 D L(n+1)/2」 2 2 7. 对于长度为 9 的顺序存储的有序表,若采用二分查找,在等概率情况下的平均查找长度为( )的 9 分之一。 A 20 B 18 C 25 D 22 8. 对于长度为 18 的顺序存储的有序表,若采用二分查找,则查找第 15 个元素的查找长度为( )。 A 3 B 4 C 5 D 6 9. 对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用二分查找,则查找元素 26 的查找长度为( )。 A 2 B 3 C 4 D 5 10. 对具有 n 个元素的有序表采用二分查找,则算法的时间复杂性为( )。 A O(n) B O(n2) C O(1) D O(log n) 2 11. 在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为 k 个子表,每个子表的长度均为 n/k,则索引查找的平均查找长度为( )。 A n+k B k+n/k C (k+n/k)/2 D (k+n/k)/2+1 12. 在索引查找中,若用于保存数据元素的主表的长度为n,它被均分为若干个子表,每一个子表的长度均为 s,则索引查找的平均查找长度为( )。 A (n+s)/2 B (n/s+s)/2+1 C (n+s)/2+1 D (n/s+s)/2 13. 在索引查找中,若用于保存数据元素的主表的长度为 144,它被均分为 12 子表,每一个子表的长度均为 12,则索引查找的平均查找长度为( )。 A 13 B 24 C 12 D 79 14. 在索引查找中,若用于保存数据元素的主表的长度为117,它被均分为 9 子表,则

数据结构导论自考题模拟9_真题(含答案与解析)-交互

数据结构导论自考题模拟9 (总分100, 做题时间90分钟) 一、单项选择题 在每小题列出的四个备选项中只有一个是符合题目要求的 1. 关于算法的描述,不正确的是______ SSS_SINGLE_SEL A 算法最终必须由计算机程序实现 B 所谓最坏时间复杂度是指最坏情况下,估算算法执行时间的一个上界 C 健壮的算法不会因非法的输入数据而出现莫名其妙的运行结果 D 算法的优劣与算法描述语言无关 分值: 2 答案:A 2. 线性表若采用链表存储结构,则要求内存中可用存储单元的地址______ SSS_SINGLE_SEL A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 连续不连续都可以 分值: 2 答案:D [考点] 本题主要考查的知识点是线性表。 由于线性表的顺序存储方式要求占用连续的空间,存储分配只能预先进行,为了克服顺序表的缺点,采用链接方式存储线性表。 3. 以下属于逻辑结构的是______ SSS_SINGLE_SEL A 顺序表 B 哈希表 C 有序表 D 单链表 分值: 2 答案:C [考点] 本题主要考查的知识点是逻辑结构。 只有有序表属于逻辑结构,其他选项都属于存储结构。本题答案为C。 4. 已知循环队列的存储空间为数组data[21],且当前队列的头指针和尾指针的值分别为8和3,则该队列的当前长度为______

SSS_SINGLE_SEL A 5 B 6 C 16 D 17 分值: 2 答案:C 5. 对特殊矩阵采用压缩存储的目的主要是为了______ SSS_SINGLE_SEL A 表达变得简单 B 对矩阵元素的存取变得简单 C 去掉矩阵中多余元素 D 减少不必要的存储空间 分值: 2 答案:D 6. 将一棵有1000个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号最大的分支结点的编号为______ SSS_SINGLE_SEL A 48 B 49 C 50 D 51 分值: 2 答案:C [考点] 本题主要考查的知识点是完全二叉树。 含n个结节的完全二叉树的分支结点个数为n/2,最大编号的分支结点的编号也为n/2。 7. 若二叉树的中序遍历序列是abcdef,且c为根结点,则______ SSS_SINGLE_SEL A 结点c有两个孩子 B 二叉树有两个度为0的结点 C 二叉树的高度为5 D 以上都不对 分值: 2 答案:A

数据结构导论自考题模拟6_真题(含答案与解析)-交互

数据结构导论自考题模拟6 (总分100, 做题时间90分钟) 一、单项选择题 在每小题列出的四个备选项中只有一个是符合题目要求的 1. 能正确地实现预定的功能,满足具体问题的需要是指算法的______ SSS_SINGLE_SEL A 正确性 B 易读性 C 健壮性 D 时空性 分值: 2 答案:A [考点] 本题主要考查的知识点是算法的正确性。 算法的正确性是指能正确地实现预定的功能,满足具体问题的需要。 2. 若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则最节省运算时间的存储方式是______ SSS_SINGLE_SEL A 单链表 B 仅有头指针的单循环链表 C 双链表 D 仅有尾指针的单循环链表 分值: 2 答案:D 3. 已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为d,则第i个结点的地址为______ SSS_SINGLE_SEL A d+(i-1)*m B d+i*m C d-i*m D d+(i+1)*m 分值: 2 答案:A [考点] 本题主要考查的知识点址顺序表结点存储地址的计算。 第i个结点的存储地址为LOC(a i )=LOC(a 1 )+(i-1)*m=d+(i-1)*m。 4. 如果以链表作为栈的存储结构,则退栈操作时______

SSS_SINGLE_SEL A 必须判别栈是否满 B 必须判别栈是否空 C 判别栈元素的类型 D 对栈不作任何判别 分值: 2 答案:B 5. 若用一个有6个单元的数组来实现循环队列,rear和front的初值分别为0和3。则从队列中删除一个元素,再添加两个元素后,rear和front的值分别为______ SSS_SINGLE_SEL A 1和5 B 2和4 C 4和2 D 5和1 分值: 2 答案:B [考点] 主要考查的知识点是循环队列。 由此循环队列的rear和front的初值分别为0和3,可知此时循环队列的1、2、3号单元为空,而4、5、0号单元有元素存在,删除一个元素后,4号单元元素被删除且front+1,其后添加的两个元素将添加到1号和2号单元且:rear+2,则此时rear和front的值分别为2和4。 6. 根据定义,树的叶子结点的度数______ SSS_SINGLE_SEL A 必大于0 B 必等于0 C 必等于1 D 必等于2 分值: 2 答案:B 7. 在一棵深度为H的完全二叉树中,所含结点的个数不少于______ •** •** •** ** SSS_SIMPLE_SIN

数据结构(专升本)复习题

一、选择题(每小题2分,共10分) 1.若已有一个栈,输入序列为A,B,C,D,E,那么下面哪种序列不可能得到?() a.ABCDE b.EDCBA c.BAEDC d.ECDBA 答案:D 2.在用邻接表表示图时, 对图进行深度优先搜索遍历的算法的时间复杂度为 ______。 a.O(n) b.O(n+e) c. O(n2) d.O(n3) 答案:B 3.下列排序算法中, 只有____排序算法是不稳定的。 a. 快速排序 b.冒泡排序 c.二路归并排序 d.直接插 入排序 答案:A 4.快速排序算法的平均时间复杂度是() a.O(n2) b. O (nlog2n) c. O(n) d. O(logn) 答案:B 5.将含100个结点的完全二叉树从根这一层开始,每层上从左到右依次对结 点编号,根 结点的编号为1。编号为49的结点X的双亲编号为() a.24 b. 25 c.23 d.无法确定 答案:A 6、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、 输出、()等5个特性。 A可执行性、可移植性和可扩充性 B可执行性、有穷性和确定性 C确定性、有穷性和稳定性 D易读性、稳定性和确定性 答案:B 7、具有线性结构的数据结构是() A 图 B 树 C 广义表 D栈 答案:D 9、顺序表是线性表的() A、链式存储结构 B、顺序存储结构 C、索引存储结构 D、散列存储结构 答案:B

16、将一个A[1..100][1..100]的三对角矩阵,按行优先存入一维数组B[1..298] (即该元素下标i=66,j=65)在B数组中的位置K为()中,A中元素a 66,65 A 195 B 196 C 197 D 198 答案:A 17、广义表 ((a)) 的表尾是() A、a B、(a) C、( ) D、((a)) 答案:C 18、一颗完全二叉树上有1001个结点,其中叶子结点的个数是() A 250 B 501 C 254 D 500 答案:B 19、一颗有124个叶结点的完全二叉树,最多有()个结点 A 247 B 248 C 249 D 251 答案:B 20、设无向图的顶点个数n,则该无向图最多有()条边 A n-1 B n(n-1)/2 C n(n+1)/2 D 0 答案:B 21、采用邻接表存储的图,其DFS类似于二叉树的() A 中序遍历 B 先序遍历 C 后序遍历 D 按层次遍历 答案:B 22、长度为10的按关键字有序的查找表采用顺序组织方式。若采用折半查找方法,则在等概率情况下,查找失败时的ASL值是() A、24/10 B、 24/11 C、39/10 D、39/11 答案:D 23、在采用拉链法处理冲突所构成的开散列表上查找某一关键字,在查找成功的情况下,所探测的这些位置上的键值() A、一定都是同义词 B、不一定都是同义词 C、都相同 D、一定都不是同义词 答案:A 24、快速排序在最坏的情况下的时间复杂度是()

相关主题
相关文档
最新文档