数据结构考试题1

合集下载

数据结构试题及答案(1)

数据结构试题及答案(1)

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。

2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。

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

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个数据中只需要选择其中最小的5个,采用( C )方法最好。

A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。

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

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

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

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

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

A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。

数据结构练习试卷1(题后含答案及解析)

数据结构练习试卷1(题后含答案及解析)

数据结构练习试卷1(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。

1.数据结构主要研究数据的______。

A.逻辑结构B.存储结构C.逻辑结构和存储结构D.逻辑结构和存储结构及其运算的实现正确答案:D解析:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

数据结构一般包括三方面的内容:①数据之间的逻辑关系。

从逻辑关系上描述数据,与数据的存储无关。

②数据的存储结构。

存储结构分为顺序结构和链式结构,是逻辑结构在计算机存储器中的表示,它包括数据元素的表示和关系的表示。

③数据的运算。

也就是在数据上所施加的一系列操作。

只考虑操作的功能是怎样的,暂不考虑如何实现。

综上所述,本题的正确答案为选项D。

知识模块:数据结构2.在数据结构中,结点(数据元素)及结点间的相互关系组成数据的逻辑结构。

按逻辑结构的不同,数据结构通常可分为______两类。

A.线性结构和非线性结构B.紧凑结构和稀疏结构C.动态结构和静态结构D.内部结构和外部结构正确答案:A解析:在数据结构中,结点(数据元素)及结点间的相互关系组成数据的逻辑结构。

按逻辑结构的不同,数据结构通常可分为线性结构和非线性结构两类。

本题正确答案为选项A。

知识模块:数据结构3.下面叙述不正确的是______。

A.算法的执行效率与数据的存储结构有关B.算法的空间复杂度是指执行这个算法所需要的内存空间C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.算法的时间复杂度是指执行这个算法所需要的时间正确答案:D解析:算法的时间复杂度是指执行算法所需要的计算工作量,故D选项不正确。

知识模块:数据结构4.数据的存储结构是指______。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据正确答案:B解析:数据的存储结构是数据元素在计算机存储器内的表示。

数据结构考试题1

数据结构考试题1

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号.每张答题纸都要写上姓名和学号.一、单项选择题(每小题1。

5分,共计30分)1。

数据结构是指。

A。

一种数据类型B. 数据的存储结构C. 一组性质相同的数据元素的集合D. 相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为。

void fun(int n){ int i=1;while (i<=n)i++;}A. O(n)B. O(n)C. O(nlog2n)D。

O(log2n)3. 在一个长度为n的有序顺序表中删除元素值为x的元素时,在查找元素x时采用二分查找,此时的时间复杂度为。

A。

O(n) B. O(nlog2n)C。

O(n2) D. O(n)4. 在一个带头结点的循环单链表L中,删除元素值为x的结点,算法的时间复杂度为.A. O(n)B。

O(n)C. O(nlog2n)D。

O(n2)5。

若一个栈采用数组s[0。

.n-1]存放其元素,初始时栈顶指针为n,则以下元素x进栈的正确操作是。

A。

top++;s[top]=x; B.s[top]=x;top++;C.top-—;s[top]=x;B。

s[top]=x;top—-;6。

中缀表达式“2*(3+4)—1”的后缀表达式是,其中#表示一个数值的结束.A. 2#3#4#1#*+—B. 2#3#4#+*1#—C. 2#3#4#*+1#—D. —+*2#3#4#1#7。

设环形队列中数组的下标为0~N-1,其队头、队尾指针分别为front和rear(front 指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为。

A。

rear-front B。

rear-front—1C. (rear—front)%N+1 D。

(rear—front+N)%N8。

若用一个大小为6的数组来实现环形队列,队头指针front指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。

数据结构练习题1

数据结构练习题1

数据结构练习题1、在数据结构中,从逻辑上可以把数据结构分成A、动态结构和静态结构B、紧凑结构和非紧凑结构B、线性结构和非线性结构D、内部结构和外部结构2、线性表的顺序存储结构是一种_____的结构,线性表的链式存储结构是一种____的存储结构A、随机存取B、顺序存取C、索引存储D、散列存取3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址____A、必须是连续的B、部分地址必须是连续的B、一定是不连续的D、连续或不连续都可以4、在下列叙述中,正确的是____A、线性表的顺序存储结构优于链表存储结构B、二维数组是其数据元素为线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出5、一个顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是___A、110B、108C、100D、1206、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是____A、edcbaB、decbaC、dceabD、abcde7、一个栈的入队序列是1,2,3,4,则队列的输出序列是____A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,18、判定一个栈ST空的(最多元素为m0)为空的条件是_____A、ST->top!=0B、ST->top= =0C、S T->top!=m0D、ST->top= =m09、判定一个栈(最多元素为m0)为满的条件是_____A、ST->top!=0B、ST->top= =0D、ST->top!=m0 D、ST->top= =m010、判定一个队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、Q U->rear-QU->front-1= =m0C、Q U->front= =QU->rearD、QU->front= =QU->rear+111、判定一个队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、QU->rear-QU->front-1= =m0C、QU->front= =QU->rearD、QU->front= =QU->rear+112、判定一个循环队列QU(最多元素为m0)为空的条件是_____A、QU->rear-QU->front= =m0B、QU->rear-QU->front-1= =m0C、QU->front= =(QU->rear+1)%m0D、QU->front! =(QU->rear+1)%m013、判定一个循环队列QU(最多元素为m0)为满的条件是_____A 、QU->rear -QU->front= =m0B 、QU->rear -QU->front -1= =m0C 、QU->front= =(QU->rear+1)%m0D 、QU->front! =(QU->rear+1)%m014、循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front 和rear ,则当前队列中的元素个数是_____A 、(rear -front+m )%mB 、rear -front+1C 、rear -front-1E 、 rear -front15、如下图所示的4棵二叉树中,____不是完全二叉树。

数据结构试卷一及答案

数据结构试卷一及答案

数据结构试卷一一、选择题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.二叉树中第ii≥1层上的结点数最多有个;A 2iB 2iC 2i-1D 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为 ;A p->next=p->next->nextB p=p->nextC p=p->next->nextD p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是 ;A 6B 4C 3D 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为 ;A 100B 40C 55D 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为 ;A 3B 4C 5D 19.根据二叉树的定义可知二叉树共有种不同的形态;A 4B 5C 6D 710.设有以下四种排序方法,则的空间复杂度最大;A 冒泡排序B 快速排序C 堆排序D 希尔排序二、填空题30分1.设顺序循环队列Q0:m-1的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;;2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________,在链式存储结构上实现顺序查找的平均时间复杂度为___________;3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有________个指针域,__________个空指针域;4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为______________________________________;5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有_________个表头结点和_________个表结点;6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有______关系;7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__________;8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________;9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句;int indexchar s , char t{i=j=0;whilei<strlens && j<strlent ifsi==tj{i=i+l; j=j+l;}else{i=_______; j=______;}if j==strlentreturni-strlent;else return -1;}10.设一个连通图G中有n个顶点e条边,则其最小生成树上有________条边;三、应用题30分1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列;2.设给定一个权值集合W=3,5,7,9,11,要求根据给定的权值集合构造一棵哈夫曼树并计算哈夫曼树的带权路径长度WPL;3.设一组初始记录关键字序列为19,21,16,5,18,23,要求给出以19为基准的一趟快速排序结果以及第2趟直接选择排序后的结果;4.设一组初始记录关键字集合为25,10,8,27,32,68,散列表的长度为8,散列函数Hk=k mod 7,要求分别用线性探测和链地址法作为解决冲突的方法设计哈希表;5.设无向图G所右图所示,要求给出该图的深度优先和广度优先遍历的序列并给出该图的最小生成树;四、算法设计题20分1.设计判断单链表中结点是否关于中心对称算法;2.设计在链式存储结构上建立一棵二叉树的算法;3.设计判断一棵二叉树是否是二叉排序树的算法;数据结构试卷一参考答案一、选择题二、填空题1. F+1 % m2. On,On3. 2n,n+14. s->next=p->next; s->next=s5. n, 2e6. m=2e7. CBA8. 4,169. i-j+1,010. n-1三、应用题1. 链式存储结构略,前序ABDEC,中序DBEAC,后序DEBCA;2. 哈夫曼树略,WPL=783. 18,5,16,19,21,23,5,16,21,19,18,234. 线性探测:6827322510876543210ΛΛ 链地址法:276832251086543210>->->->->->-h h h h h h h 5. 深度:125364,广度:123456,最小生成树T 的边集为E={1,4,1,3,3,5,5,6,5,6}四、算法设计题1. 设计判断单链表中结点是否关于中心对称算法;typedef struct {int s100; int top;} sqstack;int lklistsymmetrylklist head{sqstack stack; = -1; lklist p;forp=head;p=0;p=p->next {++; =p->data;}forp=head;p=0;p=p->next if p->data== =; else return0;return1;}2. 设计在链式存储结构上建立一棵二叉树的算法;typedef char datatype;typedef struct node {datatype data; struct node lchild,rchild;} bitree;void createbitreebitree &bt{char ch; scanf"%c",&ch;ifch=='' {bt=0; return;}bt=bitreemallocsizeofbitree; bt->data=ch;createbitreebt->lchild; createbitreebt->rchild;}3.设计判断一棵二叉树是否是二叉排序树的算法;int minnum=-32768,flag=1;typedef struct node{int key; struct node lchild,rchild;}bitree;void inorderbitree bt{if bt=0{inorderbt->lchild; ifminnum>bt->keyflag=0; minnum=bt->key; inorderbt->rchild;} }。

《数据结构》练习题一、选择题a是...

《数据结构》练习题一、选择题a是...

《数据结构》练习题一、选择题1.一个数组元素a[i]与( A )的表示等价。

A .*(a+i ) B .a+i C .*a+i D .&a+ia 是存储的是数组首地址,*a 指向的就是数组第一个元素a[0],所以*(a+i )的地址和a[i]的地址一样。

数组和指针在一定程度上本质是一样的。

2.当利用大小为N 的数组顺序存储一个栈时,假定用top==N 表示栈空,则退栈时,修改top 指针的语句是( A )。

A .top++;B .top=0;C .top--;D .top=N; 3.队列的删除操作是在( A )进行。

A .队首B .队尾C .队前D .队后队列删除元素是在队首进行,队列是进先先出,相对来说,队首元素是最先进入队列的,因此出队应该是在队首进行。

队列其实就和我们平时排队一样的4.二叉树上叶子结点数等于( C )。

A .分支结点数加1B .单分支结点数加1C .双分支结点数加1D .双分支结点数减15.哈希冲突是指( D )。

A .两个元素具有相同的序号B .两个元素的键值不同,而其他属性相同C .数据元素太多D .不同键值的元素对应于相同的存储地址6.由权值分别为3,6,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( A )。

A .51B .23C .53D .742310 135 56 72 3(2+3)*3+5*2+(6+7)*2=517.某程序的时间复杂度为)log log 1003(22n n n n +⨯+,其数量级表示为( B )。

A .O(n)B .)log (2n n OC .O(100)D .)(log 2n O8.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

A .O(n)B .O(1)C .)(log 2n OD .)(2n O9.在线性表的散列存储中,若用m 表示散列表的长度,n 表示待散列存储的元素的个数,则装填因子α等于( A )。

数据结构练习题1

数据结构练习题1

数据结构练习题1⼀、单项选择题1.若⽤⼀个⼤⼩为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除⼀个元素,再加⼊两个元素后,rear和front的值分别为多少?( )A. 1和 5B. 2和4C. 4和2D. 5和1⼤⼩为6的数组:下标从0-5;从前⾯出队,从后⾯⼊队front(前⾯)=3rear(后⾯)=0当出队列中删除⼀个元素,也就是出队,即front+1:=4再插⼊两个元素,即rear+2= 2【注】循环队列中,由于⼊队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。

因此,⽆法通过条件front==rear来判别队列是"空"还是"满"。

2.循环队列A[0..m-1]存放其元素值,⽤front和rear分别表⽰队头和队尾,则当前队列中的元素数是( )。

A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front3.for(i=0;ifor(j=0;jA[i][j]=i*j;上⾯算法的时间复杂度为( )A.O(m2)B.O(n2)C.O(m×n)D.O(m+n)4.设h是指向⾮空带表头结点的循环链表的头指针,p是辅助指针。

执⾏程序段p=h;while (p->next->next!=h)p=p->next;p->next=h;后(其中,p->next为p指向结点的指针域),则( )A. p->next指针指向链尾结点B. h指向链尾结点C. 删除链尾前⾯的结点D. 删除链尾结点5.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是()A.head= =NULLB.head–>next= =NULLC.head!=NULLD.head–>next= =head6. 设顺序表有19个元素,第⼀个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为( )A.236B.239C.242D.2457. 若⼀棵⼆叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A .9B .11C .15D .不确定8. n 个结点的线索⼆叉树上含有的线索数为()A .2nB .n -lC .n +lD .n9. 设有⼀个栈,按A 、B 、C 、D 的顺序进栈,则可能为出栈序列的是( )A.DCBAB.CDABC.DBACD.DCAB10. 归并排序中,归并的趟数是( )。

数据结构联考试卷1及答案

数据结构联考试卷1及答案
一个12阶对称矩阵a采用行优先顺序存储压缩存储上三角元素a00为第一个元素其存储地址为100每个元素占2个存储地址空间则a45的地址为????????????5
试卷一
一、单项选择题 (每小题 2 分,共 30 分)
1.算法的时间复杂度表征的是( A. 算法的难易程度 C. 执行算法所消耗的存储空间 )。 B. 算法的可读性 D. 执行算法所消耗的时间
7.可以惟一地转化为一棵树的二叉树的特点是( A.根结点没有孩子 C.根结点无左孩子
B.根结点只有一个孩子 D.根结点无右孩子 ) 。
8. 若采用邻接表存储结构, 则图的深度优先搜索类似于二叉树的 ( A.先序遍历 B表 A = (a,(b),(),(c,d,e,f))的长度为( A.3 B.4 C.5 D.6
10.用某种排序方法对关键字序列(25,82,20,45,16,27,66,34, 18)进行排序时,序列的变化情况如下: 18,16,20,25,45,27,66,34,82 16,18,20,25,34,27,45,66,82 16,18,20,25,27,34,45,66,82 则所采用的排序方法是( A.归并排序 ) 。 C.快速排序 D.希尔排序
2.在一个单链表中,若 p 所指结点不是尾元结点,s 指向已生成的新结 点,则在 p 之后插入 s 所指结点的正确操作是( A. s -> next = p -> next; p = s; B. p -> next = s -> next; s -> next = p; C. s -> next = p -> next; p -> next = s; D. s -> next = p; p -> next = s; 3.设循环队列的元素存放在一维数组 A[0..40]中,队列非空时,front 指示队首元素,rear 指示队尾元素的后一个位置。如果队列中元素的个 数为 15,front 的值为 33,则 rear 应指向的位置是( A. A[6] B. A[16] C. A[7] ) 。 D. A[17] ) 。 ) 。

数据结构习题(1-2-3章)

数据结构习题(1-2-3章)

第一章绪论一.选择题1.下面关于算法说法正确的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C.算法的可行性是指指令不能有二义性D.以上几个都是错误的2.以下哪一个术语与数据的存储结构无关?()A.栈 B.哈希表 C.线索树 D.循环队列3.算法复杂度通常是表达算法在最坏情况下所需要的计算量,O(1)的含义是()A.算法执行一步就完成B.算法执行1秒钟就完成C.算法执行常数步就完成 D.算法执行可变步数就完成4.数据结构研究的内容是()。

A.数据的逻辑结构 B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法 D.包括以上三个方面5.一个正确的算法应该具有 5 个特性,除输入、输出特性外,另外 3 个特性是()。

A.确定性、可行性、有穷性 B.易读性、确定性、有效性C.有穷性、稳定性、确定性 D.可行性、易读性、有穷性6.以下关于数据的逻辑结构的叙述中正确的是()。

A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构7.下列时间复杂度中最坏的是()A.O(1) B.O(n) C.O(log2n) D.O(n2)8.算法的时间复杂度取决于()A.待处理数据的初态 B.问题的规模C.程序本身所占的空间 D.问题的规模和待处理数据的初态二.综合应用题1.有下列运行时间函数:(1)f1(n)=1000; (2)f2(n)=n2+1000n; (3)f3(n)=3n3+100n2+n+1;分别写出相应的大O表示的运算时间。

2.下面函数mergesort执行的时间复杂度为多少?假设函数调用为mergesort(1,n),merge 函数时间复杂度为 O(n)void mergesort(int i,int j){int m;if(i!=j){mergesort(i,m);mergesort(m+1,j);merge(i,j,m);//本函数时间复杂度为 O(n)}}第二章线性表一.选择题1.下述哪一条是顺序存储结构的优点?()A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。

数据结构练习题1-5章(答案)

数据结构练习题1-5章(答案)

11、 一个栈的输入序列为 123…n,若输出序列的第一个元素是 n,输出第 i(1<=i<=n)个元
素是( B )。
A. 不确定
B. n-i+1
C. i
D. n-i
1
12、 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( C )
A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6
A. 1 和 5
B. 2 和 4
C. 4 和 2
D. 5 和 1
16、下面关于串的的叙述中,哪一个是不正确的?( B )
A.串是字符的有限序列
B.空串是由空格构成的串
C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储
17、设有两个串 p 和 q,其中 q 是 p 的子串,求 q 在 p 中首次出现的位置的算法称为( c )
A. 内存地址
B.数组下标 C.下一元素地址
D.左、右孩子地址
7、下面的叙述不正确的是( BC )
A.线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比
B. 线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关
C. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比
D. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关
13、 设有三个元素 X,Y,Z 顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是( C )。
A.XYZ
B. YZX
C. ZXY
D. ZYX
14、 假设以数组 A[m]存放循环队列的元素,其头尾指针分别为 front 和 rear,则当前队列中的

数据结构试题1

数据结构试题1

C.1200 D.log2 3600
11.对n个元素的表作堆排序,在最坏情况下,算法的时间复杂度为____。 A.O(log2 n) B.O(nlog2 n) C.O(n2) D.O(2n ) 二、填空题(每空1分,共11分) 1.一个算法具有5个特性:__________________、__________________、 ________________、有零个或多个输入、有一个或多个输出。 2.设长度为n的线性表顺序存贮,若在它的第i-1和第i个元素之间插入一 个元素, 共需移动 _________ 个元素(1<i≤n)。 3.一个字符串中 __________________________ 称为该串的子串。 4.树中结点A的 ____________________ 称为结点A的度。 5.一棵深度为4的二叉树最多有 _______ 个结点。 6.具有10个顶点的无向图,边的总数最多为 _____________ 。
网计(专升本)《数据结构》试题(模A) 一、单项选择题(从下列各题四个备选答案中选出一个正确答案,将其代 号 1.数据的不可分割的基本单位是____。 A.元素 B.结点 C.数据类型 D.数据项 2.下列算法suanfa2的时间复杂度为____。 int suanfa2(int n) { int t=1; while(t<=n) t=t*2; return t; } A.O(log2n) B.O(2n) C.O(n2) D.O(n) 3.____又称为FIFO表。 A.队列 B.散列表 C.栈 D.哈希表 4.若6行8列的数组以列序为主序顺序存储,基地址为1000,每个元素占2 个 存储单元,则第5行第3列的元素(假定无第0行第0列)的地址是____。 A.1086 B.1032 C.1068 D.答案A,B,C都不对 5.广义表(a,((b,( )),c),(d,(e)))的深度是____。 A.5 B.4 C.3 D.2 6.有n(n>0)个结点的完全二叉树的深度是____。 A.log2(n) B.log2(n)+1 C.log2(n+1) D.log2(n)+1 7.与中缀表达式a+b*c-d等价的前缀表达式是____。 A.+a-*bcd B.*+-abcd C.-+a*bcd D.abcd+*8.折半查找有序表(6,15,30,37,65,68,70,72,89,99),若查找元素37,需 依次 与表中元素____进行比较,。 A.65,15,37 B.68,30,37 C.65,15,30 D.65,15,30,37 9.对长度为10的表作选择(简单选择)排序,共需比较____次关键字。 A.45 B.90 C.55 D.110 10.对n个元素的表作快速排序,在最坏情况下,算法的时间复杂度为 ____。

数据结构考试试题及答案

数据结构考试试题及答案

数据结构考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么类型的数据结构来实现?A. 栈B. 队列C. 数组D. 链表答案:C2. 下列选项中,哪一个不是二叉树的性质?A. 任意节点的左子树和右子树的深度可能不同B. 任意节点的左子树和右子树的深度相同C. 任意节点的左子树和右子树的节点数可能不同D. 任意节点的左子树和右子树的节点数相同答案:B3. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D4. 以下哪种排序算法的时间复杂度最低?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B5. 在图的遍历算法中,深度优先搜索(DFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:B6. 以下哪种数据结构可以有效地实现稀疏矩阵的存储?A. 顺序存储B. 链表C. 散列D. 邻接矩阵答案:C7. 在二叉搜索树中,插入一个新节点后,树的平衡因子可能为:A. -2B. 0C. 2D. 3答案:A8. 堆数据结构中,父节点的值总是大于其子节点的值,这种堆被称为:A. 最小堆B. 最大堆C. 完全二叉树D. 满二叉树答案:B9. 以下哪个算法不是动态查找表的算法?A. 直接查找B. 二分查找C. 斐波那契查找D. 哈希查找答案:A10. 在图的遍历算法中,广度优先搜索(BFS)使用的栈是:A. 系统栈B. 显式栈C. 隐式栈D. 以上都不是答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______结构,遵循后进先出(LIFO)的原则。

答案:线性2. 一个具有n个顶点的无向图的边数最多为______。

答案:n*(n-1)/23. 快速排序算法的时间复杂度在最坏情况下为______。

答案:O(n^2)4. 在哈希表中,如果一个关键字的哈希地址已经被占用,则需要进行______。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

数据结构试卷(一)王彬一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

数据结构习题1

数据结构习题1

第1章绪论一、选择题1.数据结构被形式定义为(D,S),其中D是(B)的有限集合,S是D上的(H)有限集合。

A、算法B、数据元素C、数据操作D、逻辑关系E、操作F、映象G、存储H、关系2.数据结构是一门研究非数值计算的程序设计问题中计算机的(A)以及它们之间的(B)和运算的学科。

(1)A、操作对象B、计算方法C、逻辑存储D、数据映象(2)A、结构B、关系C、运算D、算法3.算法分析的目的是(D),算法分析的二个主要方面是(C)。

A、给出数据结构的合理性B、研究算法中输入输出的关系C、空间复杂性和时间复杂性D、分析算法的效率以求改进E、正确性和简明性F、分析算法的易懂性和文档性4.在数据结构中,从逻辑上可以把数据结构分成(C)。

A、动态和静态结构B、紧凑接和非紧凑结构C、线性与非线性结构D、内部结构和外部结构5.计算机算法指的是(C),它必具备输入、输出和(E)5 个特性。

A、计算方法B、排序方法C、解决问题的有限运算序列D、可行性、可移植性和可扩充性E、可行性、确定性和有穷性6.线性表的顺序存储结构是一种(A)的存储结构,线性表的链式存储结构是一种(B)。

A、随机存取B、顺序存取C、索引存取D、散列存取7.算法的时间复杂度取决于(A)。

A、问题的规模B、待处理数据的初态C、问题的规模和待处理数据的初态8.线性表若采用链表存储结构时,要求内存中可用存储单元的地址(D)。

A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续不连续都可以9.在以下的叙述中,正确的是(B)。

A、线性表的顺序存储结构优于链式存储结构B、二维数组是它的每个数据元素为一个线性表的线性表C、栈的操作方式是先进先出D、队列的操作方式是先进后出10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式。

以下解释错误的是 (A )。

A、集合中任何两个结点之间都有逻辑关系但组织形式松散B、线性结构中结点按逻辑关系依次排列形成一条"锁链"C、树形结构具有分支、层次特性,其形态有点像自然界中的树D、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接11.以下说法正确的是(D )。

数据结构试题1

数据结构试题1

数据结构1.向一个长度为n的顺序表中的第i个元素之前插入一个元素时,需要向后移动个元素。

答:n-i+12.在一个长度为n的顺序表中删除第i个元素时,需要向前移动元素。

答: n-i3.在单链表中设置头结点的作用是。

答:简单插入、删除算法4.在单链中要删除某一指定结点,必须找到该结点的结点。

答:直接前驱5.访问单链表中的结点,必须沿着依次进行。

答:指针域6.在双链表中每个结点有两个指针域,一个指向,一个指向。

答:直接前驱结点,直接后继结点7.在链表中,删除最后一个结点的算法时间复杂度为O(1)。

答:双向循环8.访问一个线性表中具有给定值的时间复杂度的数量级是。

答:O(n)9.由n个数据元素生成一个顺序表,若每次都调用插入算法把一个元素插入到表头,则整个算法的时间复杂度为,若每次都调用插入算法把一个元素插入到表尾,则整个算法的时间复杂度为。

答:O(n) ,O(n2)10.在链表中,可以用表尾指针代替表头指针。

答:双向11.在链表中,可以用表尾指针代替表头指针。

答:双向12.根据n个数据元素建立对应的顺序表和单链表存储结构,其算法的时间复杂度最好的情况是,最坏的情况是。

答:O(n) ,O(n2)13.求线性表的顺序存储和链式存储的长度的算法时间复杂度分别是和。

答:O(1) , O(n)14.在一个带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?。

答:相同15.在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?。

答:不相同16.阐述顺序表和链表存储方式的特点。

答:顺序表存储方式为数据分配连续的存储单元,数据元素按逻辑顺序依次存储到相应存储单元中,使得逻辑相邻的数据元素物理也相邻,因此可以实现随即访问线性表的数据元素,即数据访问的时间复杂度为O(1)。

链表存储方式分配的存储单元可以不连续,通过每个结点的指针域来表示数据元素之间的逻辑关系,只能顺序访问线性表中的数据元素。

数据结构试题一及答案

数据结构试题一及答案

数据结构试题一及答案一、单选题(每题2分,共40分)1.数据结构中,与所使用的计算机无关的是数据的()结构;A. 存储B. 物理C. 逻辑D. 物理和存储2.算法分析的目的是()A. 找出数据结构的合理性B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性3.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()A. 存储结构 B. 逻辑结构 C. 顺序存储结构 D. 链式存储结构4.链表是一种采用()存储结构存储的线性表A. 顺序B. 链式C. 星式D. 网状5.栈中元素的进出原则是()A. 先进先出B. 后进先出C. 栈空则进D. 栈满则出6.串是一种特殊的线性表,其特殊性体现在()A. 可以顺序存储B. 数据元素是一个字符C. 可以链式存储D. 数据元素可以是多个字符7.设有两个串p和q,求q在p中首次出现的位置的运算称作()A. 连接B. 模式匹配C. 求子串D. 求串长8.在循环队列中用数组A[m] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。

A. (front - rear + 1)% mB. (rear - front +1)% mC. (front - rear + m)% mD. (rear - front + m)% m为第9.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。

A. 13B. 33C. 18D. 4010.将一棵树T转换为孩子—兄弟链表表示的二叉树H,则T的后序遍历是H的()。

A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历11.二叉树上叶结点数等于()。

A. 分支结点数加1B. 单分支结点数加1C. 双分支结点数加1D. 双分支结点数减112.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。

数据结构习题(1-5章)

数据结构习题(1-5章)

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

2、数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3、数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4、数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5、线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7、在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8、在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9、数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10、数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11、一个算法的效率可分为时间效率和空间效率。

二、单项选择题(B)1、非线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系( C )2、数据结构中,与所使用的计算机无关的是数据的结构;A) 存储B) 物理C) 逻辑D) 物理和存储(C)3、算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4、算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性( C )5、计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6、计算机算法必须具备输入、输出和等5个特性。

数据结构练习1

数据结构练习1

1.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为:【正确答案: C】A top不变B top=0C top--D top++得分:0.002.经过以下运算后,x的值是:InitStack (s); Push(s, a); Push(s, b); Pop(s, x); GetTop(s,x) 【正确答案: A】A aB 0C bD 1得分:0.003.元素A、B、C、D依次进栈后,栈顶元素是:【正确答案: B】A CB DC BD A得分:0.004.在带头节点的单链表L为空的判定条件是:【正确答案: A】A L->NEXT==NULLB L!=NULLC L->NEXT==LD L==NULL得分:0.005.将两个长度为n、m的递增有序表归并成一个有序顺序表,其最少的比较次数是(MIN表示取最小值):【正确答案: B】A nB MIN(m, n)C mD 不确定得分:0.006.如果最常用的操作时取第i个元素及前驱元素,则下列存储方式最节省时间是:【正确答案: A】A 顺序表B 循环单链表C 双链表D 单链表得分:0.007.线性表的顺序存储结构和链式存储结构相比,优点是:【正确答案: D】A 所有的操作算法实现简单B 便于插入和删除C 节省存储空间D 便于随机存取得分:0.008.最不合适用做链队的不带头节点的链表是:【正确答案: B】A 以上都不合适B 只带队首节点指针的非循环单链表C 只带队尾节点指针的循环双链表D 只带队首节点指针的循环双链表得分:0.009.带表头结点的双循环链表L为空表的条件是:【正确答案: C】A L->prior==NULLB L==NULLC L->next==LD L->next->prior==NULL得分:0.0010.在某线性表最常用的操作是在尾元素之后插入一个元素和删除第一个元素。

数据结构试题1(有答案)

数据结构试题1(有答案)

试题1一、单选题(每题 2 分,共20分)1.1。

对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行()。

A. p-〉next=HL—〉next;HL->next=p;B。

p->next=HL;HL=p;C。

p—〉next=HL;p=HL; D. HL=p;p->next=HL;3. 3.对线性表,在下列哪种情况下应当采用链表表示?()A。

经常需要随机地存取元素B。

经常需要进行插入和删除操作C。

表中元素需要占据一片连续的存储空间 D.表中元素的个数不变4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A。

2 3 1 B. 3 2 1C。

3 1 2 D。

1 2 35.5。

AOV网是一种().A.有向图B.无向图C.无向无环图D.有向无环图6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度( )。

A.低于链接法处理冲突B。

高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.7.若需要利用形参直接访问实参时,应将形参变量说明为( )参数。

A.值B.函数C.指针D.引用8.8。

在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( ).A.行号B.列号C.元素值D.非零元素个数9.9。

快速排序在最坏情况下的时间复杂度为()。

A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2)10.10。

从二叉搜索树中查找一个元素时,其时间复杂度大致为()。

A. O(n)B。

O(1) C. O(log2n) D。

O(n2)二、二、运算题(每题 6 分,共24分)1. 1.数据结构是指数据及其相互之间的______________.当结点之间存在M对N(M:N)的联系时,称这种结构为_____________________。

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

要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1.5分,共计30分)1. 数据结构是指。

A. 一种数据类型B. 数据的存储结构C. 一组性质相同的数据元素的集合D. 相互之间存在一种或多种特定关系的数据元素的集合2. 以下算法的时间复杂度为。

void fun(int n){ int i=1;while (i<=n)i++;}A. O(n)B. O(n)C. O(nlog2n)D. O(log2n)3. 在一个长度为n的有序顺序表中删除元素值为x的元素时,在查找元素x时采用二分查找,此时的时间复杂度为。

A. O(n)B. O(nlog2n)C. O(n2)D. O(n)4. 在一个带头结点的循环单链表L中,删除元素值为x的结点,算法的时间复杂度为。

A. O(n)B. O(n)C. O(nlog2n)D. O(n2)5. 若一个栈采用数组s[0..n-1]存放其元素,初始时栈顶指针为n,则以下元素x进栈的正确操作是。

A.top++;s[top]=x;B.s[top]=x;top++;C.top--;s[top]=x; B.s[top]=x;top--;6. 中缀表达式“2*(3+4)-1”的后缀表达式是,其中#表示一个数值的结束。

A. 2#3#4#1#*+-B. 2#3#4#+*1#-C. 2#3#4#*+1#-D. -+*2#3#4#1#7. 设环形队列中数组的下标为0~N-1,其队头、队尾指针分别为front和rear(front 指向队列中队头元素的前一个位置,rear指向队尾元素的位置),则其元素个数为。

A. rear-frontB. rear-front-1C. (rear-front)%N+1D. (rear-front+N)%N8. 若用一个大小为6的数组来实现环形队列,队头指针front指向队列中队头元素的前一个位置,队尾指针rear指向队尾元素的位置。

若当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为。

A. 1和5B. 2和4C. 4和2D. 5和19. 一棵深度为h(h≥1)的完全二叉树至少有个结点。

A. 2h-1B. 2hC. 2h+1D. 2h-1+110. 一棵含有n个结点的线索二叉树中,其线索个数为。

A. 2nB. n-1C. n+1D. n11. 设一棵哈夫曼树中有1999个结点,该哈夫曼树用于对个字符进行编码。

A. 999B. 998C. 1000D. 100112. 一个含有n个顶点的无向连通图采用邻接矩阵存储,则该矩阵一定是。

A. 对称矩阵B. 非对称矩阵C. 稀疏矩阵D. 稠密矩阵13. 设无向连通图有n个顶点e条边,若满足,则图中一定有回路。

A. e≥nB. e<nC. e=n-1D. 2e≥n14. 对于AOE网的关键路径,以下叙述是正确的。

A. 任何一个关键活动提前完成,则整个工程一定会提前完成B. 完成整个工程的最短时间是从源点到汇点的最短路径长度C. 一个AOE网的关键路径一定是唯一的D. 任何一个活动持续时间的改变可能会影响关键路径的改变15. 设有100个元素的有序表,用折半查找时,不成功时最大的比较次数是。

A. 25B. 50C. 10D. 716. 在一棵m阶B-树中删除一个关键字会引起合并,则该结点原有个关键字。

A. 1B. ⎡m/2⎤C. ⎡m/2⎤-1D. ⎡m/2⎤+117. 哈希查找方法一般适用于情况下的查找。

A. 查找表为链表B. 查找表为有序表C. 关键字集合比地址集合大得多D. 关键字集合与地址集合之间存在着某种对应关系。

18. 对含有n个元素的顺序表采用直接插入排序方法进行排序,在最好情况下算法的时间复杂度为。

A. O(n)B. O(nlog2n)C. O(n2)D. O(n)19. 用某种排序方法对数据序列{24,88,21,48,15,27,69,35,20}进行递增排序,元素序列的变化情况如下:(1){24,88,21,48,15,27,69,35,20}(2){20,15,21,24,48,27,69,35,88}(3){15,20,21,24,35,27,48,69,88}(4){15,20,21,24,27,35,48,69,88}则所采用的排序方法是。

A. 快速排序B. 简单选择排序C. 直接插入排序D. 归并排序20. 以下序列是堆的是。

A. {75,65,30,15,25,45,20,10}B. {75,65,45,10,30,25,20,15}C. {75,45,65,30,15,25,20,10}D. {75,45,65,10,25,30,20,15}二、问答题(共4小题,每小题10分,共计40分)1. 如果对含有n(n>1)个元素的线性表的运算只有4种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用以下哪种存储结构,并简要说明理由。

(1)只有尾结点指针没有头结点指针的循环单链表(2)只有尾结点指针没有头结点指针的非循环双链表(3)只有头结点指针没有尾结点指针的循环双链表(4)既有头结点指针也有尾结点指针的循环单链表2. 已知一棵度为4的树中,其度为0、1、2、3的结点数分别为14、4、3、2,求该树的结点总数n和度为4的结点个数,并给出推导过程。

3. 有人提出这样的一种从图G中顶点u开始构造最小生成树的方法:假设G=(V,E)是一个具有n个顶点的带权连通无向图,T=(U,TE)是G的最小生成树,其中U是T的顶点集,TE是T的边集,则由G构造从起始顶点u出发的最小生成树T的步骤如下:(1)初始化U={u}。

以u到其他顶点的所有边为候选边。

(2)重复以下步骤n-1次,使得其他n-1个顶点被加入到U中。

从候选边中挑选权值最小的边加入到TE,设该边在V-U中的顶点是v,将v加入U中。

考查顶点v,将v与V-U顶点集中的所有边作为新的候选边。

若此方法求得的T是最小生成树,请予以证明。

若不能求得最小边,请举出反例。

4. 有一棵二叉排序树按先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20)。

回答以下问题:(1)画出该二叉排序树。

(2)给出该二叉排序树的中序遍历序列。

(3)求在等概率下的查找成功和不成功情况下的平均查找长度。

三、算法设计题(每小题10分,共计30分)1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。

设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。

给出你所设计的算法的时间复杂度和空间复杂度。

2. 假设二叉树b采用二叉链存储结构,设计一个算法void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值为x的结点的双亲结点p,提示,根结点的双亲为NULL,若在b中未找到值为x的结点,p亦为NULL。

3. 假设一个连通图采用邻接表G存储结构表示。

设计一个算法,求起点u到终点v的经过顶点k的所有路径。

四、附加题(10分)说明:附加题不计入期未考试总分,但计入本课程的总分。

假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。

假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:typedef struct node{ char name[50]; //专业、班号或姓名float score; //分数struct node *child; //指向最左边的孩子结点struct node *brother; //指向下一个兄弟结点} TNode;完成以下算法:(1)设计一个算法求所有的学生人数。

(2)求指定某班的平均分。

图1 一棵学生成绩树“数据结构”考试试题(A )参考答案要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(每小题1.5分,共计30分)1. D2. A3. A4. A5. C6. B7. D8. B9. A 10. C 11. C 12. A 13. A 14. D 15. D 16. C17. D18. A19. A20. C二、问答题(共4小题,每小题10分,共计40分)1. 答:本题答案为(3),因为实现上述4种运算的时间复杂度均为O(1)。

【评分说明】选择结果占4分,理由占6分。

若结果错误,但对各操作时间复杂度作了分析,可给2~5分。

2. 答:结点总数n =n 0+n 1+n 2+n 3+n 4,即n =23+n 4,又有:度之和=n -1=0×n 0+1×n 1+2×n 2+3 ×n 3+4×n 4,即n =17+4n 4,综合两式得:n 4=2,n =25。

所以,该树的结点总数为25,度为4的结点个数为2。

【评分说明】结果为4分,过程占6分。

3. 答:此方法不能求得最小生成树。

例如,对于如图5.1(a )所示的带权连通无向图,按照上述方法从顶点0开始求得的结果为5.1(b )所示的树,显然它不是最小生成树,正确的最小生成树如图5.1(c )所示。

在有些情况下,上述方法无法求得结果,例如对于如图5.1(d )所示的带权连通无向图,从顶点0出发,找到顶点1(边(0,1)),从顶点1出发,找到顶点3(边(1,3)),再从顶点3出发,找到顶点0(边(3,0))(a ) (d )(b ) (c )图1 求最小生成树的反例说明:只需给出一种情况即可。

【评分说明】回答不能求得最小生成树得5分,反例为5分。

若指出可求得最小生成树,根据证明过程给1~2分。

4. 答:(1)先序遍历得到的序列为:(12,5,2,8,6,10,16,15,18,20),中序序列是一个有序序列,所以为:(2,5,6,8,10,12,15,16,18,20),由先序序列和中序序列可以构造出对应的二叉树,如图2所示。

(2)中序遍历序列为:2,5,6,8,10,12,15,16,18,20。

(3)ASL成功=(1×1+2×2+4×3+3×4)/10=29/10。

ASL不成功=(5×3+6×4/11=39/11。

图2【评分说明】(1)小题占6分,(2)(3)小题各占2分。

三、算法设计题(每小题10分,共计30分)1. 设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。

设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。

相关文档
最新文档