数据结构模拟考试试卷

合集下载

数据结构模拟测验题

数据结构模拟测验题

数据结构模拟试卷一一、单选题(每小题2分,共20分)1. 在数据结构的讨论中把数据结构从逻辑上分为()。

A.内部结构与外部结构 B. 静态结构与动态结构 C. 线性结构与非线性结构 D. 紧凑结构与非紧凑结构2. 采用线性链表表示一个向量时,要求占用的存储空间地址()。

A. 必须是连续的B. 部分地址必须是连续的C. 一定是不连续的D. 可连续可不连续3. 采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A. nB. n/2C. (n-1)/2D. (n+1)/24. 在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。

A. s→link = p→link; p→link = s;B. p→link = s; s→link = q;C. p→link = s→link; s→link = p;D. q→link = s; s→link = p;5. 如果想在4092个数据中只需要选择其中最小的10个,采用()方法最好。

A.冒泡排序B. 堆排序C. 直接插入排序D. 快速排序6. 设有两个串t和p,求p在t中首次出现的位置的运算叫做()。

A. 求子串B. 模式匹配C. 串替换D. 串连接7. 在数组A中,每一个数组元素A[i][j]占用3个存储单元,行下标i从1到8,列下标j从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储单元是()。

A. 80B. 100C. 240D. 2708. 将一个递归算法改为对应的非递归算法时,通常需要使用()。

A. 栈B. 队列C. 循环队列D. 优先队列9. 一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为()。

A. 4, 3, 2, 1B. 2, 4, 3, 1C. 1, 2, 3, 4D. 3, 2, 1, 410. 在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案一.单项选择题(本大题共15小题,每小题2分,共30分)1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。

A、起泡排序B、快速排序C、堆排序D、直接选择排序2.算法分析的目的是(B)A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除C.定位D.排序4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D)A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,55.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A)A.15 B.16 C.17 D.186.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。

A. 108B. 112C. 116D. 1207.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。

A. nB. n/2C. (n+1)/2D. (n-1)/28.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序C.都不相同D.都相同9.高度为5的二叉树至多有结点数为(A)A. 63B. 32C. 24D.6410.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度C.图中弧的条数D.图中连通分量的数目11.图的邻接矩阵表示法适用于表示(C)A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。

计算机数据结构考试题及答案

计算机数据结构考试题及答案

全真模拟试题(一)一、单项选择题(在每小题的4个备选答案中,选出正确的答案,并将其号码填在题干的括号内。

每小题2分,共24分)1.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。

①单链表②双链表③单向循环④顺序表2.串是任意有限个()①符号构成的序列②符号构成的集合③字符构成的序列④字符构成的集合3.设矩阵A(aij ,l≤i,j≤ 10)的元素满足:aij≠0(i≥j, l≤i, j≤ 10)aij=0 (i<j, l≤i, j≤ 10)现将A的所有非0元素以行序为主序存放在首地址为2000的存储区域中,每个元素占有4个单元,则元素A[9][5]的首址为①2340 ②2336 ③2164 ④21604.如果以链表作为栈的存储结构,则退栈操作时()①必须判别栈是否满②对栈不作任何判别③必须判别栈是否空④判别栈元素的类型5.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为()①front=front+1 ②front=(front+1)% m③rear=(rear+1)%m ④front=(front+1)%(m+1)6.深度为6(根的层次为1)的二叉树至多有()结点。

①64 ②32 ③31 ④637.将含100个结点的完全二叉树从根这一层开始,每层上从左到右依次对结点编号,根结点的编号为1。

编号为49的结点X的双亲编号为()①24 ②25 ③23 ④无法确定8.设有一个无向图G=(V,E)和G’=(V’,E’)如果G’为G的生成树,则下面不正确的说法是()①G’为G 的子图②G’为G 的边通分量③G’为G的极小连通子图且V’=V④G’为G的一个无环子图9.用线性探测法查找闭散列表,可能要探测多个散列地址,这些位置上的键值()①一定都是同义词②一定都不是同义词③都相同④不一定都是同义词10.二分查找要求被查找的表是()①键值有序的链接表②链接表但键值不一定有序③键值有序的顺序表④顺序表但键值不一定有序11.当初始序列已经按键值有序,用直接插入算法对其进行排序,需要循环的次数为()①n2 ②nlog2n ③log2n ④n-112.堆是一个键值序列{k1,k2,…, kn},对i=1,2,…,|_n/2_|,满足( )①ki≤k2i≤k2i+1②ki<k2i+1<k2i③ki≤k2i且ki≤k2i+1(2i+1≤n)④ki≤k2i 或ki≤k2i+1(2i+1≤n)二、判断题(判断下列各题是否正确,正确在括号内打“V”,错的找“X”。

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案一、简答题(共10题,每题10分,共计100分)1. 什么是数据结构?请简要解释。

数据结构是计算机中用于组织和存储数据的方式,它包含了一系列的数据元素,以及这些数据元素之间的关系和操作。

通过使用不同的数据结构,可以更高效地存储、查找和操作数据。

2. 请解释什么是栈,并给出一个栈的应用场景。

栈是一种具有特定操作限制的数据结构,它遵循"先进后出"(LIFO)的原则。

栈的应用场景包括函数调用、表达式求值、撤销操作以及浏览器中的历史记录。

3. 什么是队列?请给出一个队列的实际应用例子。

队列是一种具有特定操作限制的数据结构,它遵循"先进先出"(FIFO)的原则。

一个实际应用例子是操作系统的进程调度,进程按照到达时间加入队列,并按照一定规则出队执行。

4. 请解释什么是链表,并给出一个链表的优点和缺点。

链表是一种动态数据结构,它由一系列节点构成,每个节点包含数据和指向下一个节点的指针。

链表的优点是可以动态地分配内存空间,且插入和删除节点的时间复杂度为O(1)。

缺点是访问链表某个具体节点的时间复杂度为O(n),且需要额外的内存空间存储指针。

5. 请解释什么是树,并给出一个树的实际应用例子。

树是一种分层次的数据结构,它由一系列节点和节点之间的关系构成。

一个实际应用例子是文件系统的目录结构,文件和文件夹通过树的结构进行组织和存储。

6. 请解释什么是图,并给出一个图的实际应用例子。

图是一种由节点和节点之间的连接关系组成的数据结构。

一个实际应用例子是社交网络,人与人之间的关系可以用图来表示,每个人是一个节点,节点之间的连接表示关系。

7. 请解释什么是散列(哈希)表,以及它的优势和劣势。

散列表是一种根据关键字直接访问的数据结构,它通过将关键字映射到表中的位置来实现快速的查找操作。

散列表的优势是查找操作的平均时间复杂度为O(1)。

劣势是如果存在多个关键字映射到同一个位置,就会发生冲突,需要解决冲突问题。

数据结构模拟试题及答案

数据结构模拟试题及答案

数据结构模拟试题一一、判断题(每小题1 分,共15分)1.计算机程序处理的对象可分为数据和非数据两大类。

2.全体自然数按大小关系排成的序列是一个线性表。

3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。

4.顺序栈是一种规定了存储方法的栈。

5.树形结构中的每个结点都有一个前驱。

6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。

7.若某顶点是有向图的根,则该顶点的入度一定是零。

8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。

9.用一维数组表示矩阵可以节省存储空间。

10.广义表的长度与广义表中含有多少个原子元素有关。

11.分块查找的效率与线性表被分成多少块有关。

12.散列表的负载因子等于存入散列表中的结点个数。

13.在起泡排序过程中,某些元素可能会向相反的方向移动。

14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。

15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。

二、填空题(每空1分,共15分)1.顺序表是一种_____________线性表。

2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。

3.栈和队列的区别在于________的不同。

4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。

5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域为空的结点。

6.n个顶点的有根有向图中至少有___条边,至多有___条边。

7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。

8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是_____。

9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。

十套数据结构模拟题+答案

十套数据结构模拟题+答案

数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是()。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。

(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的后继结点B需要的操作为()。

(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是()。

(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。

(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为()。

(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有()种不同的形态。

(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则()的空间复杂度最大。

(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。

《数据结构》3套模拟试题综合测试题带答案5

《数据结构》3套模拟试题综合测试题带答案5

《数据结构》模拟试题13一、填空题(每小题2分,共18分)1、数据的逻辑结构包括,和三种结构。

2、队列是操作受限的线性结构,只能在插入元素,而在删除元素。

3、串是一种特殊的线性表,其特殊性体现在。

4、有一个10阶对称矩阵A,采用压缩存储方式采用压缩存储方式,以行为主存储下三角形到一个一维数组中,A[0][0]的地址是100(每个元素占2个基本存储单元),则A[5][9]的地址是。

5、在高度为h的二叉树的中只有度为0和度为2的结点,则该类二叉树中所包含的结点数至少为。

6、对于一个有n个顶点和e条边的无向图,若采用邻接链表存储,则表头向量的大小为,邻接表中的结点总数为。

7、对线性表进行二分查找时,要求线性表必须是,且要求。

8、对于文件,按物理结构划分,可分为顺序文件、文件、文件和多关键字文件。

9、外部排序的最基本方法是,其主要时间花费在方面。

二、单项选择题(请将答案写在题目后的括号中。

每题2分,共18分)1、如下函数是求1!+2!+…+n!,其时间复杂度是()。

Long int Sum (int n){ long int sum=0 , t=1 ; int p ;for (p=1; p<=n ;p++) { t=t*p ; sum+=t ; }return(sum) ;}(A)O(n) (B)O(n2) (C)O(㏒2n) (D)O(n㏒2n)2、设有一个栈顶指针为top的顺序栈S,则弹出S的栈定元素的操作是()。

(A)p=S[top++];(B)p=S[++top];(C)p=S[top--];(D)p=S[--top];3、广义表((a),((b),c),(((d))))的表头是,表尾是。

()(A)(a) ((b),c),(((d))) (B)(a) (((b),c),(((d))))(C)((a),((b),c)),(((d))) (D)(a) (((d)))4、一棵二叉树,其先序遍历序列是abdgehicf,中序遍历序列是gdbheiafc,则其后序遍历序列是( )。

数据结构模拟试题6

数据结构模拟试题6

数据结构模拟试题(六)本试卷分两部分,第一部分为选择题,第二部分为非选择题;选择题20分,非选择题80分,满分100分。

考试时间150分钟。

第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要来的,请将正确选项前的字母旗在题后的括号内。

1.每一个存储节点不仅含有一个数据元素,还包含一组指针,该存储方式是【】A.顺序存储B.链式存储C.索引存储D.散列存储2.下列算法的时间复杂度是【】for(i= 0; i< n; i++)c[i][j]=i+j;A.O(1) B.O(n)C.O(log2n) D.O(n2)3.线性表若采用链式存储结构时,要求内存中可用存储单元的地址【】A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续或不连续都可以4.在有n个节点的顺序表中做插入、删除运算,需平均移动节点的数目为【】A.n B.n/2C.(n-l)/2 D.(n+l)/25.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指节点的运算时【】A. f->next=s;f=- S;B. f->next=s;r=- S;C. S->next=r;r=- S;D. S->next=f;f=- S;6.一个栈的入栈序列是1,2,3,4,则栈的不可能的输出序列是: 【】A. 3, 4, 2, l B. 3, 2, 4, lC. l, 2, 3, 4 D. 4, 3, 1, 27.设 s3=”IAM”,s4=”A TEACHER”,则 strcmp(s3,s4)=【】A. "I AM " B. "I AM A TEACHER"C. "I AMA TEACHER" D. "A TEACHER"8.设s3=”IAM”, s4=”A TEACHER”,则strcmp(s3,s4)=【】A.0 B.小于0C.大于0 D.不确定9.数组与一般线性表的区别主要在【】A.存储方面B.元素类型一致C.逻辑结构方面D.不能进行插入、删除运算10.二维数组A[4][4],数组的元素起始地址loc[0][0]=1000,元素长度为2,则loc[2][2]]为【】A.l000 B.l0l0C.l008 D.l02011.设T是一棵树,T1是对应于T的二叉树,则T的后根次序遍历和T1的次序遍历相同【】A.先根 B.中根C.后根 D.都不同12.对于一棵满二叉树,m个树叶,n个节点,深度为h,则【】A.n=h+m B.h+m=2nC.m=h-1 D.n=2h-l13.将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的左孩子编号为【】A.99 B.98C.50 D.4814.有6个节点的无向图至少有条过才能确保是一个连通图【】A.5 B.6C.7 D.815.若一组记录的排序码为(46,79,56.38.40、84),则利用堆排序的方法建立的初始堆为【】A.79,46,56,38,40,84 B. 84,79,56,38,40,46C.84,79,56,46,40,38 D. 84,56,79,40,46,3816.用某种排序方法对线性表(25,8421,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:【】(l) 25,84,21,47,15,27,68,35,20(2) 20,l5,2l,25,47,27,68,35,84(3) l5,20,2l,25,35,27,47,68,84(4) l5,20,2l,25,27,35,47,68,84则采用的排序方法【】是平均长度为4。

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

数据结构模拟考试试卷(1卷)一.判断题(下列各题,正确的请在前面的括号内打√;错误的打×)(√)(1)数据的逻辑结构与数据元素本身的内容和形式无关。

(ㄨ)(2)线性表的链式存储结构优于顺序存储。

(√)(3)将中缀表达式转换成后缀表达式是栈的重要应用。

(×)(4)栈和队列都是顺序存储的线性结构。

(×)(5)“DT”是“DA TA”的子串。

(×)(6)在二叉树中,具有一个子女的父结点,在中序遍历的序列中,它没有后继子女结点。

(×)(7)带权图的最小生成树是唯一的。

(√)(8)散列存储法的基本思想是由关键字的值决定数据的存储地址。

(√)(9)希尔排序是不稳定的排序。

(√)(10)具有n个叶子结点的哈夫曼树共有2n-1个结点。

二.填空题1.线性结构中元素之间存在一对一关系。

2.树形结构和图形结构合称为:非线性结构。

3.顺序表中逻辑上相邻的元素在物理位置上必须相连。

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

5.同一栈的各元素的类型相同。

6.已知表达式,求它的后缀表达式是栈的典型应用之一。

7.队列在进行出队操作时,首先要判断队列是否为空。

8.设循环队列的头指针front指向队头元素,尾指针rear指向队尾元素后的一个空闲元素,队列的最大空间为MAXLEN,则队满标志为front==(rear+1)% MAXLEN 。

9.串的链式存储结构简称为链式串。

10.求子串函数SubStr("Today is 30 July,2005",13,4)的结果是:July 。

11.给定如下图所示的二叉树,其层次遍历序列为:ABCEFGH 。

12.将一棵完全二叉树按层次编号,对于任意一个编号为i的结点,该结点右孩子的编号为:2*i+1 。

13.图的遍历有:深度优先搜和 _广度优先搜 __等方法。

14.n个顶点e条边的图若采用邻接矩阵存储,则空间复杂度为: _ O(n2)__。

15.二分查找的存储结构仅适用于顺序存储结构,而且关键字有序的。

16.哈希查找是按键值的散列函数值确定散列表中的位置,进行存储或查找。

17.根据被处理的数据在计算机中使用不同的存储设备,排序可分为:内排序和外排序。

18.对于n个记录的集合进行归并排序,所需要的平均时间是O(nlog2n)。

19.在双链表中,设prior和next分别表示前一个和下一个的指针域,p指向其中待删除的结点,则删除操作需要执行的命令为:p->prior->next=p->next 。

20.有100个结点的树有99 条边。

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

A. 存储结构和逻辑结构B. 存储和抽象C. 联系和抽象D. 联系与逻辑2.非线性结构中的每个结点( D )A.无直接前趋结点B.无直接后继结点C.只有一个直接前趋结点和一个直接后继结点D.可能有多个直接前趋结点和多个直接后继结点3.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是( B )。

A.当前结点所在地址域B.指针域C.空指针域D.空闲域4.在具有n个结点的单链表中,实现( A )的操作,其算法的时间复杂度都是O(n)。

A.遍历链表和求链表的第i个结点B.在地址为P的结点之后插入一个结点C.删除开始结点D.删除地址为P的结点的后继结点5.在栈中,出栈操作的时间复杂度为( A )。

A.O(1) B.O(log2n) C.0(n) D.O(n2)6.带头结点的链栈LS的示意图如下,栈顶元素是( A )LSA.A B.B C.C D.D7.以下属于队列的操作有( D )。

A.在队首插入元素 B.删除值最小的元素C.按元素的大小排序 D.判断是否还有元素8.循环队列占用的空间( A )。

A.必须连续B.不必连续C.不能连续D.可以不连续9.串的模式匹配是指( D )。

A.判断两个串是否相等B.对两个串比较大小C.找某字符在主串中第一次出现的位置D.找某子串在主串中第一次出现的第一个字符位置10.朴素模式匹配算法在最坏情况下的时间复杂度是( D )。

A.O(m) B.O(n) C.0(m+n) D.0(m*n)11.对于二叉树来说,第K层至多有( C )个结点。

A. 2K B.2K-1 C.2K-1 D.2K-1-1 12.线索二叉树是一种( A )。

A.物理 B.逻辑 C.逻辑和存储 D.线性13.有n个顶点的有向图的邻接矩阵是用( B )数组存储。

A.一维 B.n行n列 C.任意行n列 D.n行任意列14.有n个条边的无向图的邻接表存储法中,链表中结点的个数是( C )个。

A.n/2 B.n C.2n D.n*n.15.下列( C )不是利用查找表中数据元素的关系进行查找的方法。

A.有序表的查找 B. 平衡二叉树C.散列查找 D.二叉排序树查找16.顺序查找法适合于存储结构为( B )的线性表。

A.散列存储 B.顺序存储或链接存储C.压缩存储 D.索引存储17.排序方法中,从无序序列中选择关键字最小的记录,将其与无序区(初始为空)的第一个记录交换的排序方法,称为: ( D )。

A.希尔排序 B.归并排序 C.插入排序 D. 选择排序18.一组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为:( A )。

A,16 25 35 48 23 40 79 82 36 72 B.16 25 35 48 79 82 23 36 40 72 C.16 25 48 35 79 82 23 36 40 72 D.16 25 35 48 79 23 36 40 72 8219.A VL树是一种平衡树的二叉排序树,树中任一结点的( B )。

A.左、右子树的高度均相等B.左、右子树高度差的绝对值不超过1 C.左子树的高度均大于右子树的高度D.左子树的高度均小于右子树的高度20.冒泡排序的方法要求被排序的数据( A )存储。

A.必须顺序 B.必须链表 C.顺序或链表 D.可以任意四.应用题1.根据二元组关系画出逻辑图形,并指出它们属于何种数据结构。

A=(D,R),其中:D={1,2,3,4,5,6},R={(1,2),(1,6),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(5,6)}属于图结构2. 试画出所有三个结点的不同形态的二叉树。

解:三个结点的二叉树:3. 对于算术表达式(A+B*C/D )*E+F*G ,画出标识符树,并求它们的后缀表达式。

解:后缀表达式:A B C D / * + E * F G * +4. 图G 的邻接矩阵如下,试画出该图,并画出它的一棵最小生成树。

解:最小生成树:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡07013070401104031013030801110805.对于给定结点的关键字集合K={1,12,5,8,3,10,7,13,9},(1)试构造一棵二叉排序树;(2)如何依据此二叉排序树得到D的有序序列。

6.已知数据序列{10,18,4,3,6,12,9,15},写出二路归并排序的每一趟排序结果。

[10] [18] [4] [3] [6] [12] [9] [15][10 18] [3 4] [6 12] [9 15] 第一趟排序结果[3 4 10 18] [6 9 12 15] 第二趟排序结果第三趟排序结果五.程序填空题(填上适当的表达式、运算符或语句,每空1分,共5分)二叉树按层次遍历typedef struct BT{ datatype data; // 定义结点BT *lchild;BT *rchild;}BT;void Levelorder(BT *T) // 层次遍历{ i nt i,j;BT *q[100],*p;p=T;if ( p!=NULL ){ i=1;q[i]=p;j=2; }while (i!=j){ p=q[i]; cout<< p->data ;if ( p->lchild!=NULL ){ q[j]= p->lchild ;j++;}if (p->rchild!=NULL){ q[j]= p->rchild ;j++; }i++;}}六.按题目要求,写出运行下列程序的结果(5分)读下列算法,并回答下列问题:(1)采用算法进行排序?(2)算法中R[0]的作用是什么?void insertsort(int R[ ] ){ int i, j;for ( i=2; i<=n; i++ ){ R[ 0 ]=R[ i ];j=i-1;while (R[ 0 ]< R[ j ]){ R[j+1]=R[j]; j- -; }R[ j+1 ]=R[0];}}解:(1)直接插入法(2)监视哨(或哨兵)七.程序设计题链栈的存储结构和栈顶指针定义如下:#define MAXLEN 100typedef struct stacknode // 定义栈的存储结构{int data;struct stacknode *next;}stacknode;typedef struct{ stacknode *top; // 定义栈顶的指针}linkstack;试写出把十进数转换为二进制数的程序。

解:void Conversion(int n) // 栈的应用:二—十进制转换{ linkstack s;int x;s.top=NULL; // 置栈空do{ x=n%2; // 取余数n=n/2; // 取新的商stacknode *p=new stacknode ; // 申请新结点p->next=s.top ; // 修改栈顶指针s.top=p;s.top->data=x ; // 余数入栈}while (n);cout<< " 转换后的二进制数值为:";while (s.top) // 出栈处理{ cout<< s.top->data ;stacknode *p=s.top;s.top= s.top->next ;delete p ; // 出栈一个余数,收回一个结}}。

相关文档
最新文档