数据结构复习题.docx

上传人:b****6 文档编号:7106717 上传时间:2023-01-17 格式:DOCX 页数:32 大小:224.92KB
下载 相关 举报
数据结构复习题.docx_第1页
第1页 / 共32页
数据结构复习题.docx_第2页
第2页 / 共32页
数据结构复习题.docx_第3页
第3页 / 共32页
数据结构复习题.docx_第4页
第4页 / 共32页
数据结构复习题.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

数据结构复习题.docx

《数据结构复习题.docx》由会员分享,可在线阅读,更多相关《数据结构复习题.docx(32页珍藏版)》请在冰豆网上搜索。

数据结构复习题.docx

数据结构复习题数据结构复习题1.1单项选择题(从四个备选答案中选出一个正确答案,将其代号(A,B,C,D)写在题干前面的括号内)()1.一个数据对象是_的集合。

A.相同类型的数据项B.相同类型的数据元素C.不同类型的数据项D.不同类型的数据元素()2._是数据的基本单位。

A.数据项B.关键字C.数据元素D.数据类型1.2执行和分析下面的算法:

intsuanfan1(intm,intn)inti,j,s=0;for(i=0;i=m;i+)for(j=0;j=n;j+)s+;printf(%d,s);returns;回答问题:

1.表达式i=m共计执行多少次?

2.表达式j=n共计执行多少次?

3.语句s+;共计执行多少次?

4.分析算法的时间复杂度;5.假定m=n=4,算法的输出结果是什么?

算法的返回值是多少?

1.3执行和分析下面的算法:

intsuan_fan2(intn)inti,j,x=0;for(i=1;in;i+)for(j=1;ji;j+)x+;printf(x=%dn,x);returnx;回答问题:

1.表达式in共计执行多少次?

2.表达式jnext=pa-next;

(2)pa-next=pb;(3)pb-prior=pa;(4)pa-next-prior=pb;(5)free(pb);(6)pb=NULL;A.

(1)

(2)(3)(4)B.

(1)(4)

(2)(3)(6)C.(3)

(1)(4)

(2)D.

(1)(3)(4)

(2)(5)3.1多项选择题(从下列各题四个备选答案中选出1至4个正确答案,将其代号(A,B,C,D)写在题干前面的括号内)()1.设长度为n的线性表使用顺序存储结构,若删除第i个元素,需移动_个元素(1in)。

A.iB.n-i-1C.n-iD.n-i+1()2.设长度为100的线性表使用顺序存储结构,首地址为1000,每个元素占用2个存储单元,其中第65个元素的地址是_。

A.1128B.1132C.1130D.1070()3.线性表在_时,宜使用链接表实现。

A.需不断对其进行插入、删除B.需经常对其进行查找C.无足够连续存储空间D.其结点含大量信息()4.设依次进入一个栈的元素序列为d,a,c,b,可得到出栈的元素序列_。

A.d,c,b,aB.a,b,d,cC.a,b,c,dD.d,b,c,a()5.允许对队列进行的操作有_。

A.删除队首元素B.取出最近进队的元素C.按元素大小排序D.在最早入队元素之前插入元素()6.队列的存储结构可采用_。

A.一维数组B.单链表C.双向链表D.循环单链表3.2试简要说明下列算术表达式的求值过程:

20+26/(162*(3+4)-7画出运算数栈和运算符栈的主要变化过程。

一、试画出下列树的存储结构图:

1.双亲表示法;2.(左)孩子(右)兄弟表示法;3.孩子单链表表示法。

二、给定21个字符组成的文本(电文):

AAABBBAAAABBBCCACCDDE试为字符A、B、C、D、E设计哈夫曼(Huffman)编码:

1.画出哈夫曼树;2.分别列出A、B、C、D、E的哈夫曼码;3.分别计算哈夫曼树的路径长度PL和带权路径长度WPL。

三、给定21个字符组成的文本(电文):

AAABBBAAAABBBCCCCCDDE试为字符A、B、C、D、E设计哈夫曼(Huffman)编码:

1.画出哈夫曼树;2.分别列出A、B、C、D、E、F的哈夫曼码;3.分别计算哈夫曼树的路径长度PL和带权路径长度WPL。

一、试画出下列存储结构图(要求画出的图规范、美观):

1.图G1的邻接表、逆邻接表。

2.图G2的邻接多重表。

3.网N的数组表示(表示顶点的数组和关系的数组)。

二、试求图G3的生成树(要求画出的图规范、美观):

1.从顶点E出发,求图G3的一棵BFS生成树,画出该生成树;2.从顶点B出发,求图G3的一棵BFS生成树,画出该生成树;3.从顶点A出发,求图G3的一棵DFS生成树,画出该生成树。

三、试求网N的一棵最小生成树(要求画出的图规范、美观):

1.从顶点A出发,用Prim算法求网N的一棵最小生成树,写出求解过程,画出该生成树;2.用Kruskal算法求网N的一棵最小生成树,写出求解过程,画出该生成树。

4.一种抽象数据类型包括_和_两个部分。

15.在下面程序段中,s=s+p语句的执行次数为_,p*=j语句的执行次数为_,该程序段的时间复杂度为_。

inti=0,s=0;while(+i=n)intp=1;for(intj=1;jnext=HL;B、p-next=HL;HL=p;C、p-next=HL;p=HL;D、p-next=HL-next;HL-next=p;5在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行。

A、q-next=p-next;p-next=q;B、p-next=q-next;q=p;C、q-next=p-next;p-next=q;D、p-next=q-next;q-next=p;6在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行。

A、p=q-next;p-next=q-next;B、p=q-next;q-next=p;C、p=q-next;q-next=p-next;D、q-next=q-next-next;q-next=q;10、下面几个符号串编码集合中,不是前缀编码的是。

A、0,10,110,1111B、11,10,001,101,0001C、00,010,0110,1000D、b,c,aa,ac,aba,abb,abc16、某二叉树中序序列为ABCDEFG,后序序列为BDCAFGE,则前序序列是。

A、EGFACDBB、EACBDGFC、EAGCFBDD、上面的都不对20、在一棵深度为h的完全二叉树中,所含结点的个数不小于。

A、2hB、2h+1C、2h-1D、2h-121、在一棵具有n个结点的二叉树第i层上,最多具有个结点。

A、2iB、2i+1C、2i-1D、2n1、8层完全二叉树至少有个结点,拥有100个结点的完全二叉树的最大层数为。

2、树在计算机内的表示方式有、。

3、一棵有n个结点的满二叉树有个度为1的结点,有个分支(非终端)结点和个叶子,该满二叉树的深度为。

计算机算法必须具备输入、输出、()等5个特性。

A.可行性、可移植性和可扩展性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、安全性和稳定性数据的逻辑结构在计算机存储中的映像(或表示)通常有几种方法?

顺序映像和非顺序映像线性结构和树性结构的特点分别是什么?

结构中的数据元素之间存在一个对一个的关系结构中的数据元素之间存在一个对多个的关系算法在发生非法操作时可以作出处理的特性称为()A.正确性B.易读性C.健壮性D.可靠性简述顺序存储结构与链式存储结构在表示数据元素之间关系上的只要区别。

用物理位置相邻表示逻辑关系上的相邻用结点中的指针指示关系数据结构主要研究数据的()A.逻辑结构B.存储结构C.逻辑结构和存储结构D.逻辑结构和存储结构及其运算的实现循环队列A0.m-1存放其元素,用front和rear分别表示队头和队尾,则循环队列满的条件是()A.(Q.rear+1)%m=Q.frontB.Q.rear=Q.front+1C.Q.rear+1=Q.frontD.Q.rear=Q.front在操作序列Qinsert

(1),Qinsert

(2),Qdelete,Qinsert(5),Qinsert(7),Qdelete,Qinsert(9)之后,队头元素和队尾元素分别是什么?

在操作序列push

(1),push

(2),pop,push(5),push(7),pop,push(6)之后,栈顶元素和栈底元素分别是什么?

由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为()A.23B.37C.44D.46设记录的关键字(key)集合K=26,36,41,44,15,68,12,6,51,25,以K为权值集合,构建一棵哈夫曼树,依次取K中各值,构建一棵二叉排序树无向图中一个顶点的度是指图中()A.通过该顶点的简单路径数B.通过该顶点的回路数C.与该顶点相邻接的顶点数D.与该顶点连通的顶点数一个加权连通无向图的最小生成树可以使用()生成;一项过程完工所需的最少时间等于某个()A.Hash算法B.Dijkstra算法C.Prim算法D.Huffman算法A.AOE网中源点到汇点事件最多的路径的长度B.AOE网中源点到汇点的最长路径的长度C.AOE网中源点到汇点的最短路径的长度D.AOE网中源点到汇点活动最多的路径的长度对下面所示的带权图,用普里姆算法画出该图的最小生成树的生成过程第一章绪论一选择题1、在数据结构的讨论中把数据结构从逻辑上分为()。

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

A:

必须是连续的B部分地址必须是连续的C:

一定是不连续的C:

可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。

A:

nB:

n/2C:

(n-1)/2D:

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

A:

snext=pnext;pnext=s;B:

pnext=s;snext=q;C:

pnext=snext;snext=p;D:

qnext=s;snext=p;8.下面程序段的时间复杂度为_。

for(inti=0;im;i+)for(intj=0;jn;j+)aij=i*j;A、O(m2)B、O(n2)C、O(m*n)D、O(m+n)9.执行下面程序段时,执行S语句的次数为_。

for(inti=1;i=n;i+)for(intj=1;jnext=HLB.P-next=HL;HL=pC.P-next=q-next;q-next=pD.P-next=q-next;q=p-next2.在一个长度为n的顺序存储线性表中,向第i个元素(1in+1)之前插入一个新元素时,需要从后向前依次后移个元素。

A、n-iB、n-i+1C、n-i-1D、i3.在一个长度为n的顺序存储线性表中,删除第i个元素(1in+1)时,需要从前向后依次前移个元素。

A、n-iB、n-i+1C、n-i-1D、i4.在一个长度为n的线性表中顺序查找值为x的元素时,查找时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为。

A、nB、n/2C、(n+1)/2D、(n-1)/25.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行。

A、HL=p;p-next=HL;B、p-next=HL;HL=p;C、p-next=HL;p=HL;D、p-next=HL-next;HL-next=p;6.在一个单链表HL中,若要在指针q所指的结点的后面插入一个由指针p所指的结点,则执行。

A、q-next=p-next;p-next=q;B、p-next=q-next;q=p;C、q-next=p-next;p-next=q;D、p-next=q-next;q-next=p;7.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行。

A、p=q-next;p-next=q-next;B、p=q-next;q-next=p;C、p=q-next;q-next=p-next;D、q-next=q-next-next;q-next=q;6.链表不具有的特点是。

A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比二填空题1.在单链表中,删除指针P所指结点的后继结点的语句是:

2.在以HS为表头指针的单链表中,链表为空的条件分别为_。

向一个链栈插入p所指向的结点时,需要把栈顶指针的值赋给p所指向的结点的_,然后把p赋给_。

3.在带表头附加结点的线性链表HL中,链表为空的条件为_。

对于单链表,若要在指针P所指结点之后插入由指针S所指结点,则需要执行的语句序列为:

4.在线性表的顺序存储结构中,若每一个元素占l个存储单元,则第I个元素ai的存储位置为LOC(ai)=LOC(a1)+5.在线性表的单链接存储结构中,每个结点包含有两个域,一个叫域,另一个叫域。

6.在下面数组a中链接存储着一个线性表,表头指针为a0.next,则该线性表为7.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为,在表尾插入元素的时间复杂度为。

8.对于一个长度为n的单链接存储的线性表,在表头插入元素的时间复杂度为,在表尾插入元素的时间复杂度为。

9.在线性表的顺序存储中,若一个元素的下标为i,则它的前驱元素的下标为,后继元素的下标为。

10.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为,若假定p为一个数组a中的下标,则其后继结点的下标为。

11.在循环单链表中,最后一个结点的指针指向结点。

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

13.在循环双向链表中表头结点的左指针域指向结点,最后一个结点的右指针域指向结点。

14.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为和。

第四章栈和队列一选择题1栈的插入与删除操作在进行。

A、栈顶B、栈底C、任意位置D、指定位置2当利用大小为N的一维数组顺序存储一个栈时,假定用top=N表示栈空,则向这个栈插入一个元素时,首先应执行语句修改top指针。

A、top+B、top-C、top=0D、top3若让元素1,2,3依次进栈,则出栈次序不可能出现种情况。

A、3,2,1B、2,1,3C、3,1,2D、1,3,24在一个循环顺序队列中,队首指针指向队首元素的位置。

A、前一个B、后一个C、当前D、后面5当利用大小为N的一维数组顺序存储一个循环队列时,该队列的最大长度为。

A、N-2B、N-1C、ND、N+16从一个循环顺序队列删除元素时,首先需要。

A、前移一位队首指针B、后移一位队首指针C、取出队首指针所指位置上的元素D、取出队尾指针所指位置上的元素7假定一个循环顺序队列的队首和队尾指针分别为f和r,则判断队空的条件是。

A、f+1=rB、r+1=fC、f=0D、f=r8假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件是。

A、front=rearB、front!

=NULLC、rear!

=NULLD、front=NULL9、一个队列的进队列顺序是1,2,3,4,则出队列顺序为()。

A:

4,3,2,1B:

2,4,3,1C:

1,2,3,4D:

3,2,1,410.当利用大小为N的数组顺序存储一个栈时,如果使用top=0表示栈空,那么该栈最多可保存_个数据。

A.NB.N+1C.N-1D.011.假定一个链队的队首和队尾指针分别为front和rear,则判断队空的条件为A.front=rearB.front!

=NULLC.rear!

=NULLD.front=NULL12.设输入序列为1、2、3、4,则借助栈所得到的输出序列不可能是。

A.1、2、3、4B.4、3、2、1C.1、3、4、2D.4、1、2、313.队列的操作原则是。

A.先进后出B.先进先出C.只能进行插入D.只能进行删除二填空题1.队列的插入操作在进行,删除操作在进行。

2栈又称为表,队列又称为表。

3向一个顺序栈插入一个元素时,首先使后移一个位置,然后把待插入元素到这个位置上。

4从一个栈中删除元素时,首先取出,然后再前移一位。

5在一个循环顺序队列Q中,判断队空的条件为,判断队满的条件为。

6在一个顺序栈中,若栈顶指针等于,则为空栈;若栈顶指针等于,则为满栈。

7在一个链栈中,若栈顶指针等于NULL,则为;在一个链队中,若队首指针与队尾指针的值相同,则表示该队列为或该队列为。

8向一个链栈插入一个新结点时,首先把栈顶指针的值赋给,然后把新结点的存储位置赋给。

9从一个链栈中删除一个结点时,需要把栈顶结点的值赋给。

10向一个顺序队列插入元素时,需要首先移动,然后再向所指位置新插入的元素。

11、当用长度为N的一维数组顺序存储一个栈时,假定用top=N表示栈空,则表示栈满的条件为。

12向一个栈顶指针为HS的链栈中插入一个新结点*P果,应执行和操作。

13从一个栈顶指针为HS的非空链栈中删除结点并不需要返回栈顶结点的值和回收结点时,应执行操作。

14假定front和rear分别为一个链队的队首和队尾指针,则该链队中只有一个结点的条件为。

15.中缀算术表达式3+4/(25-(6+15)*8所对应的后缀算术表达式为。

16.后缀算术表达式248+3*4107-*/所对应的中缀算术表达式为,其值为。

17.假设队列Q采用循环队列存储,则队列中当前有个元素。

18.在用一维数组AN存储一个顺序循环队列时,若队列的队首、尾指针分别用f和r表示,则对列长度为_。

19.中缀表达式5+2*(y-1)/2的后缀表达式为_。

20.栈是一种特殊的线性表,它允许在表的一端进行操作。

三、阅读算法,回答问题(10分)1、voidAE(Stack&S)InitStack(S);Push(S,30);Push(S,20*2);Push(S,15);Intx=3*Pop(S)+Pop(S);Push(S,x);inti,a4=5,9,18,15;x=0;For(i=0;i4;i+)Push(S,ai);x+=ai;Push(S,x);While(!

StackEmpty(S)coutPop(S);该算法被调用后输出结果为:

3.执行下面函数调用后得到的输出结果是什么?

voidAF(Queue&Q)InitQueue(Q);inta4=5,8,12,15;for(inti=0;i4;i+)QInsert(Q,ai);QInsert(Q,QDelete(Q);QInsert(Q,30);QInsert(Q,QDelete(Q)+10);while(!

QueueEmpty(Q)coutQDelete(Q)1)为_。

15假定一棵二叉树顺序存储在一维数组a中,但让编号为1的结点存入a0元素中,让编号为2的结点存入a1元素中,其余类推,则编号为i结点的左孩子结点对应的存储位置为_,若编号为i结点的存储位置用j表示,则其左孩子结点对应的存储位置为_。

16.若对一棵二叉树从0开始进行结点编号,并按此编号把它顺序存储到一维数组a中,即编号为0的结点存储到a0中,其余类推,则ai元素的左孩子元素为_,右孩子元素为_,双亲元素(i0)为_。

17对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为_个,其中_个用于指向孩子结点,_个指针空闲着。

18.已知完全二叉树的第5层有8个结点(根结点在1层),则其叶子结点有个。

深度为k的二叉树其结点数至多有个。

二、应用题1.已知一棵二叉树的先序、中序和后序序列如下所示,请填写各序列中空格处的结点,并画出该二叉树以及它的中序线索二叉链表存储示意图。

先序序列是:

_B_F_ICEH_G中序序列是:

D_KFIA_EJC_后序序列是:

_K_FBHJ_G_A2.已知二叉树的后序和中序序列如下,画出该二叉树以及建立中序线索后的示意图。

先序序列是:

ABDGCEFH中序序列是:

DGBAECHF第七章图一、填空题1在一个图中,所有顶点的度数之和等于所有边数的_倍。

2在一个具有n个顶点的无向完全图中,包含有_条边,在一个具有n个顶点的有向完全图中,包含有_条边。

3.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要_条边。

4表示图的三种存储结构为_、_和_。

5.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为_。

6对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别为_和_条。

7.在有向图的邻接表和逆邻接表表示中,每个顶点邻接表分别链接着该顶点的所有_和_结点。

8对于一个具有n个顶点和e条边的有向图和无向图,若采用边集数组表示,则存于数组中的边数分别为_和_条。

9对于一个具有n个顶点和e条边的无向图,当分别采用邻接矩阵、邻接表和边集数组表示时,求任一顶点度数的时间复杂度依次为_、_和_。

10.假定一个图具有n个顶点和e条边,则采用邻接矩阵、邻接表和边集数组表示时,其相应的空间复杂度分别为_、_和_。

11.对用邻接矩阵表示的图进行任一种遍历时,其时间复杂度为_,对用邻接表表示的图进行任一种遍历时,其时间复杂度为_。

12对于下面的无向图G1,假定用邻接矩阵表示,则从顶点v0开始进行深度优先搜索遍历得到的顶点序列为_,从顶点v0开始进行广度优先搜索遍历得到的顶点序列为_。

13.对于下面的有向图G2,假定用邻接矩阵表示,则从顶点v0开始进行深度优先搜索遍历得到的顶点序列为_,从顶点v0开始进行广度优先搜索遍历得到的顶点序列为_。

14.对于下面的带权图G3,其最小生成树的权为_。

15对于下面的带权图G3,若从顶点v0出发,则按照普里姆算法生成的最小生成树中,依次得到的各条边为_。

17假定用一维数组dn存储一个AOV网中用于拓扑排序的顶点入度,则值为0的元素被链接成为一个_。

18.对于一个具有n个顶点和e条边的连通图,其生成树中的顶点数和边数分别为_和_。

16.对于下面的带权图G3,若按照克鲁斯卡尔算法产生最小生成树,则得到的各条边依次为_。

应用题1.对于下图G4和G5,按下列条件试分别写出从顶点v0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。

(1)假定它们均采用邻接矩阵表示;

(2)假定它们均采用邻接表表示,并且假定每个顶点邻接表中的结点是按顶点序号从大到小的次序链接的。

2.对于下图G6,试给出一种拓扑序列,若在它的邻接表存储结构中,每个顶点邻接表中的边结点都是按照终点序号从大到小链接的,则按此给出唯一一种拓扑序列。

一、单项选择题一、单项选择题1数据结构在计算机中的表示称为数据的()。

A)存储结构B)抽象结构C)顺序结构D)逻辑结构2对于下面程序段的时间复杂度为()。

for(i=1;i=n;i+)for(j=1;j=1;i-)for(j=1;jnext=p;p-next=q;B)q-next=p-next;p-next=qC)q-next=p-next;p=q;D)p-next=q;q-next=p;16线性表的顺序存储结构具有的特点是()。

A)可直接随机访问任一元素B)插入删除不需要移动元素C)不必事先估计元素个数D)所需空间与线性表长度成正比17线性表的静态存储结构与顺序存储结构相比,优点是()。

A)所有的操作算法实现简单B)便于随机存取C)便于插入和删除D)便于利用零散的存储器空间19将如下图所示的s所指结点加到p所指结点之

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1