数据结构模拟考试试卷2

合集下载

数据结构--第二章考试题库(含答案)

数据结构--第二章考试题库(含答案)

第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

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

3.线性表是具有n个()的有限序列(n>0)。

【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

【哈尔滨工业大学 2001二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用()存储方式最节省运算时间。

【北京理工大学 2000一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DS试题10套

DS试题10套

第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)1.计算机算法指的是,它必须具备输入、输出和【】A.计算方法B.排序方法C.解决问题的有限运算步骤D.程序设计方法2.下列算法的时间复杂度是【】for(i=0;i<n;i++)c[i][j]=i+j;A .O(l) B.O(n) C.O(log2n) D.O(n2)3.在单链表的一个节点中有【】A.l个指针B.2个指针C.0个指针D。

3个指针4.在具有n个节点的单链表中做插入、删除运算,平均时间复杂度为【】A.O(l)B。

O(n)C.O(log2n)D.O(n2)5.向一个栈顶指针top的链栈中插入一个S所指节点时,执行【】A.top->next=s;B.s->next=top->next;top一>next=s;C.s->next=top;top=s;D.s->next=top;top=top->next;6.栈结构通常采用的两种存储结构是【】A.散列方式和索引方式B.顺序存储结构和链表存储结构C.链表存储结构和数组D.线性存储结构和非线性存储结构7.设s1=””,则strlen(s1)=【】A.0 B.1 C。

2 D.38.设目标串T=”aabbccddbbaa”,模式P=”bb”,则该模式匹配的有效位移为【】A.1 B.2 C.3 D.49.数组与一般线性表的区别主要在【】A.存储方面B.元素类型一致C.逻辑结构方面D.不能进行插入、删除运算10设二线数组A[0。

m-l][0。

n-1]按行优先顺序存储在内存中,每个元素占d个字节,则元素A[i][j]的地址为【】A.LOC(A[1][1])+[(i-1)*n+j-l]*dB.LOC(A[0][0])+[(i-l)*n+j-1]*dC.LOC(A[1][1])+[(j-l)* n+i–1]*dD.LOC(A[0][0])+[(j-l)*n+i-1]*d11具有n个节点的完全二叉树的深度为【】A.log2n +1 B.log2n+lC.log2n D.log2n12在具有n(n>l)个节点的完全二叉树中,节点i(2i>n)的左孩子节点是【】A.2i B.2i+lC.不存在D.是2i-l13.在一个图中,所有顶点的度数之和等于图的边数的几倍。

数据结构模拟试题二及答案

数据结构模拟试题二及答案
(4)for(k=i; k<=j; k++) R[k]=S[k];
六.算法设计题
1.Struct node{
int data;
node* next;
}
typedef node* pointer;
pointer head;
voiddel(){
pointer p,q,r,s;
q=head; p=q->next;
数据结构模拟题二参考答案
一.判断题
1、× 2、× 3、√ 4、× 5、√ 6、√ 7、×.8、× 9、√ 10、× 11、×12、× 13、√ 14、×.15、×
二.填空题
1.数组 2.给f和r赋同一个值x,0≤x≤100 3.前者没有指定存储方法,后者指定存储方法 4.n ┏log2(n+1)┐ 5.双亲数组 孩子链表 左孩子和右兄弟链表 6.n 7. 57
7.若某棵二叉树结点的后序序列和层次序列正好相反,则该二叉树_____________。
A.每个结点都没有右孩子B.不存在度为2的结点C.每个结点都没有左孩子D.不存在
8.对于一棵具有n个结点,度为3的树来说,树的高度至少是____________。
A.┏log32n┓B.┏log3(3n-1)┓C.┏log3(3n+1)┓D.┏log3(2n+1)┓
13.对n个元素执行简单选择排序,排序码的比较次数总是n(n-1)/2次。
14.物理记录的大小与逻辑记录的大小成正比。
15.对索引文件,索引表是建立在内存的,数据区是建立在外存的。
二.填空题(每空1分,共15分)
1.在程序中,描述顺序表的存储空间一般用________变量。
2.若用Q[0]~Q[100]作为循环顺序队列的存储空间,用“队首指针f的值等于队尾指针r的值”作为队空的标志,则创建一个空队列所要执行的操作是___________。

数据结构(第二版)模拟测试题4套及答案

数据结构(第二版)模拟测试题4套及答案

试卷B一、选择题(本题共20分,每题2分)1.在数据结构中,从逻辑上可以把数据结构分成( ) 。

A .动态结构和静态结构 B. 线性结构和非线性结构 C. 紧凑结构和非紧凑结构 D. 内部结构和外部结构 2. 下列程序段的时间复杂度是( )count=0;for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;A.O(nlog2n)B.O(n)C.O(log2n)D.O(n2) 3. 以下描述错误的是:( )A. 线性表是n 个数据元素的有限非空集合。

B. 栈和队列都是操作受限的线性表。

C. 串(或字符串)是由零个或多个字符组成的有限序列。

D. 非空栈中的栈顶指针top 始终指向栈顶元素的下一个位置。

4. 若采用少用一个队列空间的方法来区分队满队空两种状态,则判定一个顺序循环队列 Q (最大队列长度MAXSIZE )为满队列的条件是( )。

A. Q.front=Q.rearB. Q.front!=Q.rearC. Q.front=(Q.rear+1) % MAXSIZED. Q.front!=(Q.rear+1) % MAXSIZE 5. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。

A. 3 B. 4 C. 5 D. 66. 设矩阵A (如下图所示)是一个对称矩阵,为了节省存储,将其下三角(包括对角线)部分按行序存放在一维数组 B[n(n+1)/2]中,对下三角部分中任一元素 ai,j(i ≥j),在一维数组 B 的下标位置k 的值是( )。

A. i(i-1)/2+j-1 B. i(i-1)/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j0,01,01,11,01,11,1...............n n n n a a a A a a a ----⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦7. 有一个有序表为{5, 18,23, 33, 42, 54,56,78},当折半查找56时,经过( )次比较后查找成功。

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题练习题一、单项选择题1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( )A. 操作的有限集合B. 映象的有限集合C. 类型的有限集合D. 关系的有限集合2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )A. n-i+1B. iC. i+1D. n-i3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( )A. head==NULLB. head->next==NULLC. head!=NULLD. head->next==head4. 引起循环队列队头位置发生变化的操作是( )A. 出队B. 入队C. 取队头元素D. 取队尾元素5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( )A. 2,4,3,1,5,6B. 3,2,4,1,6,5C. 4,3,2,1,5,6D. 2,3,5,1,6,46. 字符串通常采用的两种存储方式是( )A. 散列存储和索引存储B. 索引存储和链式存储C. 顺序存储和链式存储D. 散列存储和顺序存储7. 数据结构是()A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合8. 算法分析的目的是()A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是()A.插入B.删除C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )11. 设串sl=″Data Structures with Java″,s2=″it″,则子串定位函数index(s1,s2)的值为()A.15 B.16C.17 D.1812. 二维数组A[8][9]按行优先顺序存储,若数组元素A[2][3]的存储地址为1087,A[4][7]的存储地址为1153,则数组元素A[6][7]的存储地址为()A.1213 B.1209C.1211 D.120713. 在按中序遍历二叉树的算法中,需要借助的辅助数据结构是()A.队列B.栈C.线性表D.有序表14. 在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系()A.不一定相同B.都相同C.都不相同D.互为逆序15. 若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的()A.层次遍历算法B.前序遍历算法C.中序遍历算法D.后序遍历算法16. 若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为()A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目17. 图的邻接矩阵表示法适用于表示()A.无向图B.有向图C.稠密图D.稀疏图18. 若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为()A.f,c,b B.f,d,bC.g,c,b D.g,d,b19. 下面程序段的时间复杂度为( )s=0;for(i=1;i<n;i++)for(j=1;j<i;j++)s+=i*j;A.O(1)B.O(logn)C.O(n)D.O(n2)20. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。

数据结构模拟试题答案

数据结构模拟试题答案

《数据结构》模拟试题一、单项选择题(30分)1 .在数据结构的讨论中把数据结构从逻辑上分为 ____ J 。

A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构。

2 .算法分析的两个主要方面是―DA.正确性和简明性B.可读性和文档性C.数据复杂性和程序复杂性D.空间复杂性和时间复杂性 3 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 B 。

A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法4 .设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为cA.5B.6C.7D.95 .线性表采用链式存储结构时,要求内存中可用存储单元的地址—d _。

A.必须是连续的B.必须是部分连续的C. 一定是不连续的D.连续和不连续都可以6 .对具有n 个结点的线性表进行插入和删除操作,所需的算法时间复杂度为―dA. O(1)B. O(n)C. O(nlog 2n)D. O(n 2)7 .在单链表中指针p 所指结点之后插入指针为s 的结点,正确的操作是_b ___ 。

A. p->next=s;s->next= p->next;B. s->next= p->next; p->next=s;C. p->next=s; p->next = s->nextD. p->next=s->next; p->next=s;8 .栈中元素的进出原则是■—bA.先进先出B.先进后出C.栈空则进D.栈满则出 9 .长度是n 的顺序循环队列,front 和rear 分别指示队首和队尾,判断队列为满队列的条件是_dB. front=0 10 .下面说法不正确的是 ___ c. A.广义表的表头总是一个广义表 B.广义表的表尾总是一个广义表C.广义表难以用顺序存储结构D.广义表可以是一个多层次的结构 A. rear=0C. rear==frontD. (rear+1) %n==front11.已知二叉树的先序遍历序列为ABCD,中序遍历序列为BCDA,则后序遍历序列为—d—。

《数据结构》模拟试卷二及答案

《数据结构》模拟试卷二及答案

模拟试卷二一、单选题(每题 2 分,共20分)1.在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行(B )。

A. HL=p; p->next=HL;B. p->next=HL->next; HL->next=p;C. p->next=HL; p=HL;D. p->next=HL; HL=p;2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储(A B )个元素.A. nB.n-1C. n+1D.不确定3.下述哪一条是顺序存储方式的优点?(C A )A.存储密度大 B.插入和删除运算方便C. 获取符合某种条件的元素方便D.查找运算速度快4.设有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3) BDA.658 B.648 C.633 D.653 3m+3=78 m=255.下列关于二叉树遍历的叙述中,正确的是( DA ) 。

A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点6.k层二叉树的结点总数最多为( A ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.对线性表进行二分法查找,其前提条件是( ).A.线性表以链接方式存储,并且按关键码值排好序B.线性表以顺序方式存储,并且按关键码值的检索频率排好序C.线性表以顺序方式存储,并且按关键码值排好序D.线性表以链接方式存储,并且按关键码值的检索频率排好序8.对n个记录进行堆排序,所需要的辅助存储空间为A. O(1og2n)B. O(n)C. O(1)D. O(n2)9.对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K %7作为散列函数,则散列地址为0的元素有()个,A.1 B.2 C.3 D.410.下列关于数据结构的叙述中,正确的是( D ).A.数组是不同类型值的集合B.递归算法的程序结构比迭代算法的程序结构更为精炼C.树是一种线性结构D.用一维数组存储一棵完全二叉树是有效的存储方法二、填空题(每空1分,共26分)1.数据的逻辑结构被分为_________、________、__________和___________四种。

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

数据结构模拟考试试卷(2卷)一.判断题(下列各题,正确的请在前面的括号内打√;错误的打×)(√)1.数据的逻辑结构是独立于计算机的。

(×)2.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此单链表是随机存取的存储结构。

(√)3.栈的特点是“后进先出”。

(√)4.判断顺序队列为空的标准是头指针和尾指针均指向同一个结点。

(×)5.串的堆分配存储是一种静态存储结构。

(×)6.完全二叉树一定是满二查树。

(×)7.邻接表只能用于有向图的存储。

(×)8.选择好的哈希函数就可以避免冲突的发生。

n)。

(√)9.对于n个记录的集合进行归并排序,所需的平均时间为O (nlog2(×)10.对于满足二分查找和分块查找条件的文件而言,无论它存放在何种介质上,均能进行顺序查找,折半查找和分块查找。

二.填空题1.数据结构是一门研究非数值计算程序设计中计算机的操作对象以及它们之间的关系和运算的学科。

2.数据的存储结构形式包括:顺序存储、链式存储、散列存储、索引存储。

3.在线性表的顺序存储中,元素之间的逻辑关系是通过相邻位置决定的。

4.在双向链表中,每个结点都有两个指针域,它们一个指向其前趋结点,另一个指向其后继结点。

5.在有n个元素的栈中,出栈操作的时间复杂度为 O(1)。

6.在栈结构中,允许插入、删除的一端称为栈顶。

7.对于队列,只能在队首删除元素。

8.循环队列SQ经过InitQueue (SQ),SQ->front等于0 。

9.空格串的长度等于空格的个数。

10.设目标T="abccdcdccbaa",模式P="cdcc",则第 6 次匹配成功。

11.采用二叉链表存储的n个结点的二叉树,一共有2n 个指针域。

12.给定如下图所示的二叉树,其前序遍历序列为:ABEFHCG 。

Array13.图的逆邻接表存储结构只适用于 __有向____图。

14.一个图的生成树的顶点是图的 _ 全部____顶点。

15.快速排序是对冒泡排序的一种改进。

16.在哈希函数H(key)=key % P中,P一般应取质数。

17.大多数排序算法都有两个基本的操作:比较和移动。

18.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第19个记录60插入到有序表时,为寻找插入位置至少需比较 6 次。

19.一个连通图有 1 个连通分量。

20.已知二叉树有50个叶子结点,则二叉树的总结点树至少是99 。

三.选择题1.执行下列语句的时间复杂度为:( B )。

s=0;for (i=1;i<=n; i++)s=s+i;A. O(1)B. O(n)C. O(n2)D. O(n3)2.数据结构中,在逻辑上可以把数据结构分成:( C )。

A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构3.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( B )个元素。

A.8 B.63.5 C.63 D.74.用链表存储的线性表,其优点是( C )。

A.便于随机存取B.花费的存储空间比顺序表少C.便于插入和删除D.数据元素的物理顺序与逻辑顺序相同5.在栈顶一端可进行( D )操作。

A.插入 B.删除 C.进栈D.插入和删除6.从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行下列 ( D )命令。

A.x=top;top=top->next; B.top=top->next;x=top->data;C.x=top->data; D.x=top->data;top=top->next; 7.若进队的序列为:A,B,C,D,则出队的序列是( C )。

A.B,C,D,A B.A,C,B,DC.A,B,C,D D.C,B,D,A8.从一个顺序循环队列删除一个元素时,首先需要做的操作是( B )。

A.队头指针减1 B.取出队头指针所指的元素C.队头指针加1 D.取出队尾指针所指的元素9.串是( D )。

A. 不少于一个字母的序列B.任意个字符的序列C. 不少于一个字母的序列D.有限个字符的序列10.若串S="SOFTWARE",其子串的数目是:( C )。

A.35 B.36 C.37 D.388+7+6+5+4+3+2+1+1=3711.根据二叉树的定义,具有3个结点的二叉树有( C )种树型。

A.3 B.4 C.5 D.612.如右图所示的二叉树,先序遍历的序列是(A. A、B、C、D、E、F、G 、H、IB. A、B、D、H、I、E、C、F、GC. H、D、I、B、E、A、F、C、GD. H、I、D、E、B、F、G、C、A13.有8个结点的无向连通图最少有( C )条边。

A. 5 B. 6 C. 7 D. 614.任何一个无向连通图的最小生成树( A )。

A.只有一棵 B.一棵或多棵 C.一定有多棵 D.可能不存在15.平衡二叉树的各结点左右子树深度之差不能为( D )。

A.-1 B.0 C.1 D.216.静态查找的全部运算是( D )。

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 72C.16 25 48 35 79 82 23 36 40 72 D.16 25 35 48 79 23 36 40 72 82 19.有序表是( A )的查找表。

A.结点按键值有序排列 B. 顺序存储C.二叉排序树 D.散列存储20.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点编号,根结点的编号为1,则编号为49的结点的右孩子编号为( B )。

A.98 B.99 C.50 D.100四.应用题1.根据二元组关系画出逻辑图形,并指出它们属于何种数据结构。

C=(D,R),其中:D={1,2,3,4,5,6},R={(1,2),(2,3),(2,4),(3,4), (3,5),(3,6),(4,5),(4,6)}解:属于图结构2. 某二叉树的结点数据采用顺序存储,其结构如下:(1)画出该二叉树(3分)(2)写出按层次遍历的结点序列(2分) 解: (1)(2)层次遍历的结点序列:E A F D H C G I B3. 已知一棵树的层次遍历的序列为:ABCDEFGHIJ ,中序遍历的序列为:DBGEHJACIF ,请画出该二叉树,并写出它的后序遍历的序列。

解:后序遍历的序列:D G J H E B I F C A 4. 根据如下有向图,画出邻接矩阵和邻接表。

解(1)邻接矩阵 1 2 3 4 5⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛0100000001100000100010110543215. 对于给定结点的关键字集合K={34,76,45,18,26,54,92,38}, (1)试构造一棵二叉排序树;(2)求等概率情况下的平均查找长度ASL 。

解:(1)构造二叉排序树(2)ASL=(1*1+2*2+3*3+4*2)/ 8 =2.75 (或=11/4)6. 已知数据序列{10,18,14,13,16,12,11,9,15,08},写出希尔排序每一趟(设d=5、2、1)排序的结果。

① ②③④⑤解: 10 18 14 13 16 12 11 09 15 08 d=510 11 09 13 08 12 18 14 15 16 d=208 11 09 12 1013 15 14 18 16d=1 08 09 10 11 12 13 14 15 16 18五.程序填空题(填上适当的表达式、运算符或语句,每空1分,共5分)以二叉链表为存储结构,试完成求二叉树深度的程序填空typedef struct BT{ datatype data; // 定义结点 BT *lchild; BT *rchild; }BT;int TreeDepth(BT *T) // 求树深度 { i nt ldep,rdep; if( T==NULL ) return 0; else{ ldep= TreeDepth(T->lchild) ; rdep= TreeDepth(T->rchild) ; if(ldep>rdep)return ldep+1 ; elsereturn rdep+1 ; }}六.按题目要求,写出运行下列程序的结果二叉树的结构如图所示,试写出执行下列算法后的输出结果: 。

(用大写的英文字母表示,字母之间不要任何间隔符号,最后一个字母后面也不要间隔符号)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++;}}解:ABDCFGE 层次遍历七.程序设计题设待排序的文件用单链表做存储结构,头指针为head,写出其选择排序算法。

void select ( lklist head ){ p=head;while ( p!=NULL ){ s=p;q=p->next;while ( q!=NULL ){ if ( q->key < s->key )s=q;q=q->net;}if ( s!=p ){ t=p->key;p->key=s->key;s->key=t;}}p=p->next;}。

相关文档
最新文档