精品数据结构模拟题Word文档下载推荐.docx
- 文档编号:18734069
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:63
- 大小:112.08KB
精品数据结构模拟题Word文档下载推荐.docx
《精品数据结构模拟题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《精品数据结构模拟题Word文档下载推荐.docx(63页珍藏版)》请在冰豆网上搜索。
if(p->
data==x)n++;
p=p->
next;
}
returnn;
对于结点类型为LNode的单链表,以上算法的功能为:
2、intBB(ElemTypeA[],intn,KeyTypeK)
for(inti=0;
i<
n;
i++)
if(A[i].key==K)break;
if(i<
n)returni;
elsereturn–1;
该算法的功能是:
3、voidCC(Stack&
S)
Pop(S);
Push(S,50);
Push(S,45);
Peek(S);
假定调用算法时栈S中已有2个元素(23,16)的栈,其中23时栈底,调用后得到的栈内容为(从栈底开始排列):
4、voidDD(ElemTypeA[],intn)
ElemTypex;
inti,j,flag;
for(i=1;
n-1;
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;
flag=1;
if(flag==0)return;
该算法的功能是什么,一般称为什么算法?
五、算法填空,在画有横线的地方填写合适的内容(10分)。
计算二叉数的的深度。
intBtreeDepth(BTreeNode*BT)
if(BT==NULL)
return0;
else
intdep1,dep2;
dep1=;
dep2=;
if(dep1>
dep2);
return;
六、编写算法(10分)
编写一个算法,返回搜索树中的关键字最小的元素值。
《数据结构》模拟题
(二)
1、队列的删除操作是在()进行。
2、当利用大小为N的数组顺序存储一个栈时,假定用top==N表示栈空,则退栈时,用()语句修改top指针。
A.top++;
B.top=0;
C.top--;
D.top=N;
3、由权值分别为3,6,7,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A.51B.23
C.53D.74
4、在一棵二叉树中,第4层上的结点数最多为()。
A.31B.8
C.15D.16
5、向堆中插入一个元素的时间复杂度为()。
A.O(log2n)B.O(n)
C.O
(1)D.16O(nlog2n)
1、数据的存储结构被分为____________、___________、____________和____________四种。
2、若对一棵二叉树的结点编号从0开始顺序编码,按顺序存储,把编号为0的结点存储到a[0]中,其余类推,则a[i]元素的左孩子元素为________,右孩子元素为________,双亲元素(i>
0)为________。
3、从一个栈删除元素时,首先取出,然后再前移一位。
4、后缀表达式“210+5*6–9/”的值为。
5、假定一棵树的广义表表示为A(B(C(D,E),F,G(H,I,J)),K),则度为3、2、1、0的结点数分别为______、______、______和______个。
6、在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
7、在索引表中,若一个索引项对应主表中的一条记录,则称此索引为________索引,若对应主表中的若干条记录,则称此索引为________索引。
8、对于二分查找所对应的判定树,它既是一棵_____,又是一棵__________。
1、空堆开始依次向堆中插入线性表(64,52,12,48,45,26)中的每个元素,请以线性表的形式给出每插入一个元素后堆的状态。
(为小根堆)
2、在一份电文中共使用五种字符:
A,G,F,U,Y,Z,它们的出现频率依次为12,9,18,7,14,11,求出每个字符的哈夫曼编码。
1、voidAA(LNode*HL,constElemType&
item)
LNode*newptr=newLnode;
newptr->
data=item;
while(p->
next!
=HL)
newptr->
next=HL;
p->
next=newptr;
2、voidBB(List&
L)
inti=0;
while(i<
L.size)
intj=i+1;
while(j<
if(L.list[j]==L.list)
for(intk=j+1;
k<
L.size;
k++)
L.list[k-1]=L.list[k];
L.size--;
elsej++;
i++;
以上算法的功能为:
3、voidCC(BTreeNode*&
BST)
ElemTypea[6]={45,23,78,35,77,25};
BST=NULL;
for(inti=0,i<
6;
Insert(BST,a[i]);
调用该算法后,生成的二叉搜索数的中序序列为:
4、voidDD()
ElemTypeA[]={1,3,5,7,9,2,4,6,8,10},B[10];
TwoMerge(A,B,0,4,9);
for(inti=0;
i<
10;
i++)
cout<
<
B[i]<
”“;
endl;
}
调用该算法后,输出结果为:
利用单链表进行数据排序。
voidLinkSort(ElemTypea[],intn)
LNode*head=newLNode;
InitList(head);
inti;
for(i=0;
Insert(head,a[i]);
LNode*p=head->
i=0;
while()
a[i++]=p->
data;
ClearList(head);
编写一个非递归算法,在稀疏有序索引表中二分查找出给定值K所对应的索引项,即索引值刚好大于等于K的索引项,返回该索引项的start域的值,若查找失败则返回-1。
答案
1、A2、A3、A4、B5、A
1、顺序结构、链接结构、索引结构、散列结构
2、2i+1、2i+2、
3、栈顶元素、栈顶指针
4、6
5、2、2、0、7
6、n(n-1)/2、n(n-1)
7、稠密、稀疏
8、二叉搜索树、理想平衡树
1、(64)
(52,64)
(12,64,52)
(12,48,52,64)
(12,45,52,64,48)
(12,45,26,64,48,52)
2、A:
111G:
011F:
10
U:
010Y:
00Z:
110
(或0、1相反)
1、向单链表的末尾添加一个元素。
2、删除线性表中所有重复的元素。
3、232535457778
4、12345678910
p!
=NULL
p=p->
deletehead;
intBinsch(IndexListB,intm,IndexKeyTypeK)
intlow=0,high=m-1;
while(low<
=high)
intmid=(low+high)/2;
if(K==B[mid].index)
returnB[mid].start;
elseif(K<
B[mid].index)
high=mid-1;
low=mid+1;
if(low<
m)returnB[low].start;
《数据结构》模拟题(三)
1、在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素。
A.n-iB.n-i+1
C.n-i-1D.i
2、在线性表的散列存储中,若用m表示散列表的长度,n表示待散列存储的元素的个数,则装填因子α等于()。
A.n/mB.m/n
C.n/(n+m)D.m/(n+m)
3、从一棵B_树删除元素的过程中,若最终引起树根结点的合并,则新树高度是()。
A.原树高度加1B.原树高度减1
C.原树高度D.不确定
4、在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
A.行号B.列号
C.元素值D.地址
5、在一个具有n个顶点的无向图中,要连通所有顶点则至少需要()条边。
A.nB.2n
C.n-1D.n+1
1、对于双目操作符,其重载函数带有__________个参数,其中至少有一个为____________的类型。
2、从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。
3、在归并排序中,进行每趟归并的时间复杂度为________,整个排序过程的时间复杂度为________,空间复杂度为________。
4、在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________个,其子树数目最少为________,最多为________。
6、快速排序在平均情况下的时间复杂度为________,在最坏情况下的时间复杂度为________。
7、从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向________查找,若元素的大于根结点的值,则继续向________查找。
8、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则应执行语句:
。
1、假定一个待散列存储的线性表为(37,65,25,73,42,91,45,36,18,75),散列地址空间为HT[12],若采用除留余数法构造散列函数和链接法处理冲突,试求出每一元素的散列地址,画出最后得到的散列表,求出平均查找长度。
2、对于下图,若按照克鲁斯卡尔算法产生最小生成树,写出得到的各条边的次序。
1、voidBB(LNode*&
HL)
LNode*p=HL;
HL=NULL;
LNode*q=p;
q->
HL=q;
对于结点类型为Lnode的单链表,以上算法的功能为:
2、voidBB(List&
La)
InitList(La);
inta[]={78,26,56,27,34,42};
for(i=0;
3;
InsertFront(La,a[i]);
for(i=3;
InsertRear(La,a[i]);
TraverseList(La);
该算法执行后得到的线性表La为:
3、voidCC(BTreeNode*BT)
if(BT!
BT->
if(BT->
left!
=NULL||BT->
right!
’(’;
CC(BT->
left);
if(BT->
right!
’,’;
right);
’)’;
4、voidDD(GLNode*GL)
intmax=0;
while(GL!
if(GL->
tag==true)
intdep=DD(GL->
sublist);
if(dep>
max)max=dep;
GL=GL->
returnmax+1;
向以BST为树根指针的二叉搜索树上插入值为item的结点的递归算法。
voidInsert(ABTListBST,int&
t,constElemType&
if(t==0)
intp=BST[0].right;
if(p==0)
cerr<
”数组空间用完!
”<
exit
(1);
BST[0].right=BST[p].right;
BST[p].data=item;
t=p;
elseif(item.key<
Bst[t].data,item)
else
编写对二叉树进行中序遍历的非递归算法。
1、C2、A3、B4、A5、C
1、2、用户定义
2、O(n)、O(m*n)
3、O(n)、O(nlog2n)、O(n)
4、
、m-1、
、m
5、堆尾、堆顶、向下
6、O(nlog2n)、O(n2)
7、查找成功、左子树、右子树
8、p->
HL=p;
1、
1
2
3
4
5
6
7
8
9
11
∧
平均查找长度ASL=(7*1+2*2+3*1)/10=1.4
2、(3,4)5,(0,1)8,(4,5)9,(4,7)10,(2,4)14,(1,3)15,(4,6)31
1、将一个单链表按逆序链接。
2、(56,26,78,27,34,42)
3、把二叉树以广义表形式输出。
4、计算广义表深度。
BST[p].left=BST[p].right=0;
Insert(BST,BST[t].left,item);
Insert(BST,BST[t].right,item);
voidInorder(BTreeNode*BT)
BtreeNode*s[10];
inttop=-1;
BTreeNode*p=BT;
while(top!
=-1||p!
top++;
s[top]=p;
left;
if(top!
=-1)
p=s[top];
top--;
data<
’‘;
right;
《数据结构》模拟题(四)
一、单选题(每小题2分,共8分)
1.若需要利用形参直接访问实参,则应把形参变量说明为()参数。
A.指针B.引用
C.值
2.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则
执行( )。
A.q->
next=p->
next=q;
B.p->
next=q->
q=p;
C.q->
D.p->
next=p;
3.在一个顺序队列中,队首指针指向队首元素的( )位置。
A.后一个 B.前一个
C.当前
4.向二叉搜索树中插入一个元素时,其时间复杂度大致为( )。
A.O(log2n)B.O(n)
C.O
(1)D.0(nlog2n)
二、填空题(每空1分,共32分)
1.数据的存储结构被分为________________、______________、________________和______________四种。
2.对于一个顺序存储的线性表,在表头插入元素的时间复杂度为____________,在表尾插入元素的时间复杂度为________________。
3.在稀疏距阵所对应的三元组线形表中,每个三元组元素按____________为主序,__________为辅序的次序排列。
4.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为________________域和______________域。
5.中缀表达示3+X*(2.4/5-6)所对应的后缀表达示为______________。
6.在一棵高度为h的3叉树中,最多含有_______结点。
7.假定一棵二叉树的结点数为18,则它的最小深度为________,最大深度为_______。
8.在一棵二叉搜索树中,每个分支结点的左子树上所有的结点的值一定___________该结点的值,右子树上所有结点的值一定__________该结点的值。
9.当向一个小根堆插入一个具有最一小值的元素时,该元素需要逐层_______调整,直到被调整到_______位置为止。
10.表示图的三种存储结构为_________________、________________和________________。
11.对用邻接距阵表示的具有n个顶点和e条边的图形进行任一种遍历时,其时间复杂度为__________,对用邻接表表示的图进行任一种遍历时,其时间复杂度为______________。
12.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为___________和__________。
13.假定对长度n=144的线性表进行索引查找,并假定每个子表的长度均为
则进行索引查找的平均查找长度为__________,时间复杂度为___________。
14.一棵B-树中的所有叶子结点均处在_____________上。
15.每次从无序表中顺序取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做_______排序;
每次从无序表中挑选出一个最大或最小元素,把它交换到有序表中的一端,此种排序方法叫做_________排序。
16.快速排序在平均情况下的时间复杂度为___________,在最坏情况下的时间复杂度为__________。
三、运算题(每小题6分,共24分)
1.假定一棵普通树的广义表表示为a(b(e),c(f(h,i),g),d),分别写出先根,后根,按层遍历的结果。
先根:
后根:
按层:
2.已知一个带权图的顶点集V和边集G分别为:
V={0,1,2,3,4,5,6,7};
E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9};
则求出该图的最小生成树的权。
最小生成树的权:
3.对于线性表(18,25,63,50,41,32,90,66)进行散列存储时,若选用H(K)=K%11作为散列函数,则散列地址为0的元素有______个,散列地址为3的元素有______个,散列地址为8的元素有______个。
4.假定一组记录的排序码为(46,79,56,38,40,80,25,34),在对其进行快速排序的过程中,进行第一次划分后得到的排序码序列为________________________________。
四、阅读算法,回答问题(每小题8分,共16分)
1、voidAD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 数据结构 模拟
