西安电子科技大学数据结构期末复习题docWord文件下载.docx
- 文档编号:20578502
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:9
- 大小:89.85KB
西安电子科技大学数据结构期末复习题docWord文件下载.docx
《西安电子科技大学数据结构期末复习题docWord文件下载.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学数据结构期末复习题docWord文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
B.部分地址必须连续
C.不一定连续D.连续与否无关
&
以下关于链式存储结构的叙述屮,是不正确的。
A.结点除自身信息外还包扌舌指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不必邻接
C.口J以通过计算直接确定第i个结点的存储地址
D.插入、删除操作方便,不必移动结点
9.设依次进入一个栈的元素序列为d,a,c,b,得不到出栈的元素序列为—o
A.dcbaB.acdbC.abedD.cbda
10.将新元素插入到链式队列中时,新元素只能插入到O
A.链头B.链尾C.链中
D.第i个位置,i大于等于1,大于等于表长加1
11.设栈S和队列Q的初始状态为空,元素el、e2、e3、e4、e5和e6依次通过栈S,—
个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、和el,则栈S容量至少应该是o
A.6B.4C.3D.2
12.下面是'
abcd321ABCD'
的子串。
A.abedB.32labC.'
abcABC'
D.'
21AB'
13.假设8行10列的二维数组A[l...8,1...10]分别以行序为主序和以列序为主序顺序存储时,其首地址相同,那么以行序为主序时元素a[3,5]的地址与以列序为主序时—元素相同。
A.a[7,31B.a[8,3]C.a[l,4]D.ABC都不对
14.数组A[0...5,0...6啲每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元屮,则元素A[5,5]的地址为o
A.1175B.1180C.1205D.1210
15.下列广义表中,长度为3的广义表为。
A.(a,b,c,())B.((g),(a,b,c,d,f),())C.(a,(b,(d)))D.((()))
16.以下关于广义表的叙述中,正确的是o
A.广义表是0个或多个单元素或子表组成的冇限序列
B.广义表至少有一个元素是了表
C.广义表不可以是自身的子表
D.广义表不能为空表
17•若树T有a个度为1的结点,b个度为2的结点,c个度为3的结点,则该树有个
叶结点。
A.l+2b+3cB・a+2b+3cC.2b+3cD.l+b+2c
18.若一棵二叉树有102片叶子结点,则度二叉树度为2的结点数是o
A.100B.101C.102D.103
19.
在有n个叶了结点的霍夫曼树中,其结点总数为:
o
20.具有12个结点的完全二叉树有o
A.5个叶子结点B.5个度为2的结点
C.7个分支结点D.2个度为1的结点
21.设结点x和y是二叉树中的任意两结点,若在先根序列中x在yZ前,而后根序列中x
在y之后,则x和y的关系是o
A.x是y的左兄弟B.x是y的右兄弟
C.x是y的祖先D.x是y的后代
22.先序遍丿力序列与屮序遍丿力序列相同的二叉树为o
A.根结点无左了树的二叉树B.根结点无右了树的二叉树
C.只有根结点的二叉树或非叶子结点只有左子树的二叉树
D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
23.若二叉树T的前序遍历序列和中序遍历序列分别是bdcaef和cdeabf,则其后序遍历序
列为
A.ceadtbB.feacdbC.eacdtbD.以上都不对
24•设无向图的顶点个数为n,则该图最多有条边。
A.n-1B.n(n-l)C.n(n-l)/2D.n
25.对于一个有n个顶点和e条边的无向图,若采用邻接表表示,邻接表中的结点总数
是o
26.无向图G=(V,E),其中V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}。
对该图进行深度优先遍历,下面不能得到的序列是O
A・acfdeb
B.aebdfc
C.aedfcb
D.abecdf
27.在下述排序方法中,不属于内排序方法的是o
A.插入排序法B.选择排序法C.拓扑排序法D.归并排序法
28.直接插入排序在最好情况下的吋间复杂度为o
A.O(log2n)B.0(n)C.O(nlog2n)D.0(n)
A.0(1?
)B.0(n)
3().下面的排序算法中,稳定是o
A.直接插入排序法
C.直接选择排序法
二、填空题
1.一个算法具有5个特性:
一个或多个输出。
C.O(nlog2n)D.0(rT)
B.快速排序法
D.堆排序法
、、有零个或多个输入,
29•对有n个记录的表作快速排序,在最坏情况,算法的吋间复杂度是
2..设数组a[1...5O,1...80]的基地址为2000,毎个元素占2个存储单元,若以行序为主序顺序存储,则元素a[45,68]的存储地址为9174;
若以列序为主序顺序存储,则
元素a[45,681的存储地址为8788。
3.当线性表的元索总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取
线性表屮的元素时,应采用存储结构。
4.两个字符串相等的充分必要条件是一长度相等且对应位置上的字符相等o
5.字符串“abed”屮共冇个长度大于0的字串。
6.广义表list二(5,(3,2,(14,9,3),(),4),2,(6,3,10))的长度及深度分别
为和。
7.若二叉树的先序序列和后序序列相反,则该二叉树一定满足只有•个叶了结点
8.若无向图满足一有ml条边的连通图,则该图是树。
9•若无向图屮冇n个顶点,则其边数最少为ml,最多为n(ml)/2
10•堆排序的时间复杂度和空间复杂度分别为O(nlogm)和O⑴。
三、名词解释
(1)算法及其特性
(2)优先级队列(3)串的模式匹配(4)完全二叉树
(5)Huffman编码(6)Huffman树(7)连通分量及重连通分量(8)最小生成树
(9)克鲁斯卡尔算法(10)普里姆算法(11)希尔排序
(12)快速排序(13)堆
四、简答题
1.请对线性表进行顺序存储和链式存储的特点作比较。
2.单链表为什么要引入头结点?
3.线性表的链式存储结构有单链表、循环链表、双向链表,试问它们各有什么优点和缺点?
4.内存屮一片连续空间(不妨假设地址从1到m),捉供给两个栈使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。
5.假设有一个适当大小的栈S,输入栈的序列为A,B,C,D,Eo
问:
(1)能否得到下列的输出序列:
①B,C,D,E,A;
②E,A,B,C,D;
3E,D,C,B,Ao
(2)写出所有可能止确的输出序列(至少5种)。
6.用向量表示的循环队列的队首和队尾位置分别为1和max_size,试给出判断队列为空和为满的边界条件。
7.设一棵二叉树后序遍历序列为DGJHEBIFCA,中序遍历序列为DBGEHJACIF,要求:
(1)训出该二叉树;
(2)写出该二叉树的先序遍历序列;
(3)画出该二叉树对应的森林。
8.对二叉树屮的结点按层次顺序(每一层自左向右)进行的访问操作称为二叉树的层次遍历。
现已知一棵二叉树的层次序列为AEBGFDIMH,中序遍历序列为GEFAMDBHL请画出该二叉树并写岀英先序序列。
若将该二叉树看作是一个森林的孩子一兄弟表示,请画出该森林。
(西电2004年考研试题)
9.已知某通信电文仅由A、B、C、D、E、F这6个字符构成,其出现的频率分别为23、
5、14、8、25、7,请给出它们的霍夫曼树及其对应的霍夫曼编码。
10给定下列图G用两种不同表示法画出该图的存储结构图。
11.针对上图分别用卡鲁斯卡尔及普里姆算法给出该图的最小生成树,画出其逻辑结构。
12•总结直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序、简单选择排序、锦标赛排序、堆排序及归并排序等在最好情况下、最坏情况及平均的吋间复杂度,辅助空间复杂度及稳定性。
13.判断下而的每个结点序列是否表示一个堆,如果不是堆,请把它调整为堆。
(1)100,90,80,60,85,75,20,25,10,70,65,50
(2)100,70,50,20,90,75,60,25,10,85,65,80
14•已知一序列(12,70,33,65,24,56,48,92,86,33),问该序列是否是堆?
如果不是,则把它调整为小顶堆。
并问把该序列调整为堆共需要多少次元素间的比较?
多少次元素间的交换。
15.试为卜•列情况选择合适的排序算法:
(1)n=30,且要求最坏情况下速度最快;
(2)n=30,且要求既要快,又要排序稳定;
(3)n=2000,要求平均情况下速度最快;
(4)n=2000,要求最坏情况下速度最快,又要节省存储空间。
五、算法设计题
1.实现一个算法,完成在不带表头结点的单链表笫i个结点之前插入新元素X的操作。
2.(a)实现一个函数,完成在带表头结点的双向循环链表中,建立一个包含有值value的新结点并将其插入到当前结点之后。
(b)实现一个函数,完成在带表头结点的双向循环链表小删除当前结点,同时让当前指针指到链表中下一个结点位置。
3.(a)实现一个函数完成删除链式栈顶结点,返回被删栈顶元素的值。
(b)实现一个函数完成删除链式队列队头结点,并返回被删对头元素的值。
4.对二叉链表,实现一个两数Parent(*BinTreeNode<
Type>
*start,
*BinTreeNode<
*curent)从结点start开始,搜索结点current的双亲结点,并返冋其地址,否则返冋NULL。
5.若用二叉链表作为二叉树的存储表示,试针对下列问题编写递归算法:
(1)统计二叉树中叶了结点的个数;
(2)交换每个结点的左了女和右了女。
6.熟练常握直接插入排序、折半插入排序、希尔排序、起泡排序、快速排序等其它排序的算法
7.若以域变量rear和length分别指示循环队列中队尾元素的位置和队列中元素的个数。
请完成下而的入队列和出队列的算法:
#defineMAXQSIZE100//最大队列长度
Typestruct{
Qelemtype*base;
//base为队列所在区域的首地址
intlength;
〃队列长度
intrear;
〃队尾元索位置
}SqQueue;
StatusEnQueue(SqQueue&
Q,Qelemtypee)
<
if(①)returnERROR;
//队列满,无法插入
Q.rear=②;
〃计算元索e的插入位置
③=e;
〃在队尾加入新的元素
Q.length++;
〃队列长度加1
returnOK;
}
StatusDeQueue(SqQueue&
Q,Qelemtype&
e)//删除对头元索,并用e带回其值
{
if(®
)returnERROR;
〃队列满
e=Q.base[⑤];
〃取队头元素
Q.length〃队列长度减1
8•请运用快速排序思想,设计递归算法实现求n(n>
l)个不同元素集合屮的第i(lWiWn)小元素。
9.阅读下列函数说明及相应代码,在空白处填入相应语句。
[函数11
函数palinddrome(chars[])6tl功能是:
判断字符串s是否为冋文字符串,若是,则返冋
0,否则返回・1。
若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:
“LEVEL”是回文字符串,而“LEVAL”不是。
Intpalindrome(chars[])
{char*pi,*pj;
Pi=s;
pj=s+strlen(s)-1;
//*strlen(s)函数用于求得串s的串长
While(pi<
pj&
){
Pi++;
pi--;
讦(②)return-1;
elsereturn0;
[函数2]
函数insert_sort(inta[],intcount)是用直接插入排序法对指定数组的前count个元素从小到大排序。
Voidinsert_sort(inta[],intcount)
{inti,j,t;
for(i=l;
i<
count;
i++){//控制a[i],...a[count-1]的比较和插入
t=a[i];
尸;
while(j>
0&
tVa[j]){〃在冇序部分寻找元素a[i]的插入位置
4;
j…;
5;
10•假设以数组seq[0...m-l]存放循环队列中的元索,同时设变量rear和quelen分别指示循环队列屮的队尾元素的位置和内含元素的个数。
请给必
(1)给出循环队列的队满条件和队空条件;
(2)写出相应的入队列和出队列的算法,并分别分析其时间代价;
(3)如果用数组sequ[m...n]來存放循环队列中的元索,则
(2)中的入队列和出队列的算法屮的哪些语句要修改?
如何修改?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安电子科技大学 数据结构 期末 复习题 doc