《数据结构》期末复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.voidDD(ElemType A[],int n)
{
ElemType x;
int i,j,flag;
for(i=1;i<n-1;i++)
{
flag=0;
for(j=n-1;j>=i;j__)
if (A[j].stn<A[j-1].stn)
{
x=A[j];
A[j]=A[j-1];
A[j-1]=x;
8.若对一棵二叉树的结点编号从0开始顺序编码,按顺序存储,把编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左孩子元素为________,右孩子元素为________,双亲元素(i>0)为________。
9.从一个栈删除元素时,首先取出,然后再前移一位。
10.后缀表达式“2 10 + 5 * 6 – 9 /”的值为。
{
for (int i=0;i<n;i++)
if (A[i].key = =K) break;
if (i<n) return i;
else return –1;
}
该算法的功能是:
3.void CC( Stack &S)
{
Pop(S);
Push(S,50);
Push(S,45);
Peek(S);
}
假定调用算法时栈S 中已有2个元素(23,16)的栈,其中23时栈底,调用后得到的栈内容为(从栈底开始排列):
13.在索引表中,若一个索引项对应主表中的一条记录,则称此索引为________索引,若对应主表中的若干条记录,则称此索引为________索引。
14.对于二分查找所对应的判定树,它既是一棵_____,又是一棵__________。
15.对于双目操作符,其重载函数带有__________个参数,其中至少有一个为____________的类型。
A.小于B.大于
C.不小于D.大于等于
19.对于一棵具有n个结点的树,该树中所有结点的度数之和为()。
A.n-1B.n
C.n+1D.2n
20.某程序的时间复杂度为(3n+100×log2n+ nlog2n),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(100)D.O(log2n)
21.在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行( )。
四、阅读算法,回答问题
1.int AA(LNode *HL , ElemType x)
{
int n=0;
LNode *p=HL;
while (p!=NULL)
{
if (p->data= =x) n++;
p=p->next;
}
return n;
}
对于结点类型为LNode的单链表,以上算法的功能为:
2.int BB(ElemType A[], int n, KeyType K)
9.已知一个中缀算术表达式为:25-(6/15)+(15/8)@,写出对应的后缀算术表达式。
10.在一份电文中Leabharlann Baidu使用五种字符:A,G,F,U,Y,Z,它们的出现频率依次为4,9,8,17,14,11,求出每个字符的哈夫曼编码。
11.一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)= key % 13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。
flag=1;
}
if (flag= =0) return;
}
}
该算法的功能是什么,一般称为什么算法?
5.voidEE(LNode * HL,const ElemType & item)
{
LNode * newptr=new Lnode ;
newptr->data=item;
LNode *p=HL;
while ( p->next!=HL )
C.原树高度D.不确定
14.在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
A.行号B.列号
C.元素值D.地址
15.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要()条边。
A.nB.2n
C.n-1D.n+1
16.某程序的时间复杂度为(10n+nlog2n+n2),其数量级表示为()。
A.n-iB.n-i+1
C.n-i-1D.i
12.在线性表的散列存储中,若用m表示散列表的长度,n表示待散列存储的元素的个数,则装填因子等于()。
A.n/mB.m/n
C.n/(n+m)D.m/(n+m)
13.从一棵B_树删除元素的过程中,若最终引起树根结点的合并,则新树高度是()。
A.原树高度加1B.原树高度减1
19.当从一个小根堆中删除一个元素时,需要把________元素填补到________位置,然后再按条件把它逐层________调整。
20.快速排序在平均情况下的时间复杂度为________,在最坏情况下的时间复杂度为________。
21.从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向________查找,若元素的大于根结点的值,则继续向________查找。
p=p->next;
newptr->next=HL;
p->next=newptr;
}
对于结点类型为LNode的单链表,以上算法的功能为:
6.voidFF(List &L)
{
int i=0;
while (i<L.size)
{
int j=i+1;
4.在一份电文中共使用五种字符:A,G,F,U,Y,Z,它们的出现频率依次为12,9,18,7,14,11,求出每个字符的哈夫曼编码。
5.假定一个待散列存储的线性表为(37,65,25,73,42,91,45,36,18,75),散列地址空间为HT[12],若采用除留余数法构造散列函数和链接法处理冲突,试求出每一元素的散列地址,画出最后得到的散列表,求出平均查找长度。
22.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则应执行语句:

23.若对一棵二叉树的结点编号从0开始顺序编码,按顺序存储,把编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左孩子元素为________,右孩子元素为________,双亲元素(i>0)为________。
24.在循环单链表中,最后一个结点的指针域指向________结点。
6.对于下图,若按照克鲁斯卡尔算法产生最小生成树,写出得到的各条边的次序。
7.有七个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为叶子结点构造一棵哈夫曼树,并计算出带权路径长度WPL。8。已知一组记录的排序码为(46,79,56,38,40,80,95,24),写出对其进行快速排序的每一次划分结果。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
17.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
A.n-iB.n-i+1
C.n-i-1D.i
18.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定()该结点的值。
三、运算题
1.已知一个中缀算术表达式为: 3+4*(25-(6/15))-8@,写出对应的后缀算术表达式。
2.对以下图,试给出一种拓扑序列,若在它的邻接表存储结构中,每个顶点邻接表中的边结点都是按照终点序号从大到小链接的,则按此给出唯一一种拓扑序列。
3.空堆开始依次向堆中插入线性表(64,52, 12,48,45,26)中的每个元素,请以线性表的形式给出每插入一个元素后堆的状态。(为小根堆)
16.从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。
17.在归并排序中,进行每趟归并的时间复杂度为________,整个排序过程的时间复杂度为________,空间复杂度为________。
18.在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________个,其子树数目最少为________,最多为________。
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;
22.根据n个元素建立一棵二叉搜索树时,其时间复杂度大致为()。
A.O(n)B.O(log2n )
C.O(n2)D.O(nlog2n)
28.二叉搜索树的中序遍历得到的结点序列为________。
29. 在以HL为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为________________和____________________。
30.假定一个线性表为(”abcd”,”baabd”,”bcef”,”cfg”,”ahij”,”bkwte”,”ccdt”,”aayb”),若按照字符串的第一个字母进行划分,使得同一个字母被划分在一个子表中,则得到的a,b,c三个子表的长度分别为________、________和________。
A.分支结点数加1B.单分支结点数加1
C.双分支结点数加1D.双分支结点数减1
4.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序
A.插入B.交换
C.选择D.归并
5.在一个图中,所有顶点的度数之和等于所有边数的( )倍。
A.2B.1
C.3D.4
6.队列的删除操作是在()进行。
25. 假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则结点D的双亲结点为________,孩子结点为___________。
26.后缀表达式“216+ 5 – 6 – 9*”的值为。
27. 在一棵高度为5的理想平衡树中,最多含有________个结点,最少含有________个结点。
A.队首B.队尾
C.队前D.对后
7.当利用大小为N的数组顺序存储一个栈时,假定用top = = N表示栈空,则退栈时,用()语句修改top指针。
A.top++;B.top=0;
C.top--;D.top=N;
8.由权值分别为3,6,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.51B.23
C.53D.74
9.在一棵二叉树中,第4层上的结点数最多为( )。
A.31B.8
C.15D.16
10.向堆中插入一个元素的时间复杂度为( )。
A.O(log2n)B.O(n)
C.O(1)D.16O(nlog2n)
11.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
浙江广播电视大学《数据结构》期末复习题
2005年12月
一、单选题
1.某程序的时间复杂度为(3n+nlog2n+n2+8),其数量级表示为()。
A.O(n)B.O(nlog2n)
C.O(n2)D.O(log2n)
2.队列的插入操作是在()进行。
A.队首B.队尾
C.队前D.对后
3.二叉树上叶结点数等于()。
二、填空题
1.一个算法应具备的5个特性为、、、
、。
2.在采用独立结点构成的双向链表中,设p和q分别是具有Dnode *类型的指针变量。若双向链表中p结点之后插入一个q结点,其操作步骤为:




3.表示图的三种存储结构为、和。
4.假定一棵二叉树广义表表示为a(b(c,d),e(,f)),则对它进行的先序遍历结果为____________,中序遍历结果为____________,后序遍历结果为____________,按层遍历结果为____________。
5.当从一个小根堆中删除一个元素时,需要把________元素填补到________位置,然后再按条件把它逐层________调整。
6.二叉搜索树的中序遍历得到的结点序列为________。
7.数据的存储结构被分为____________、___________、____________和____________四种。
11.假定一棵树的广义表表示为A(B(C(D,E),F,G(H,I,J)),K),则度为3、2、1、0的结点数分别为______、______、______和______个。
12.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
相关文档
最新文档