《数据结构》模拟试题1411页.docx
- 文档编号:8543646
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:123.86KB
《数据结构》模拟试题1411页.docx
《《数据结构》模拟试题1411页.docx》由会员分享,可在线阅读,更多相关《《数据结构》模拟试题1411页.docx(12页珍藏版)》请在冰豆网上搜索。
《数据结构》模拟试题1411页
《数据结构》模拟试题14
一、填空题(每小题2分,共18分)
1、对于给定的n个元素,可以构造出的逻辑结构有集合,,
和四种。
2、数据结构中评价算法的两个重要指标是和。
3、顺序存储结构是通过表示数据元素之间的(逻辑)关系;链式存储结构是通过表示数据元素之间的(逻辑)关系。
4、栈是的线性表,其操作数据的基本原则是。
5、设有一个二维数组A[0…9][0…9],若每个元素占5个基本存储单元,A[0][0]的地址是1000,若按行优先(以行为主)顺序存储,则A[6][8]的存储地址是。
6、二叉树由根结点,和三个基本单元组成。
7、若采用邻接矩阵存储一个图所需要的存储单元取决于图的;无向图的邻接矩阵一定是。
8、在查找时,若采用折半查找,要求线性表,而哈希表的查找,要求线性表。
9、对于文件,按物理结构划分,可分为顺序文件、文件、
文件和多关键字文件。
二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)
1、有如下递归函数fact(n),其时间复杂度是()。
Fact(intn)
{if(n<=1)return1;
elsereturn(n*fact(n-1));
}
(A)O(n)(B)O(n2)(C)O(㏒2n)(D)O(n㏒2n)
2、以head为头结点的非空单循环链表的尾结点p的特点是()。
(A)p->next=NULL;(B)p=NULL;
(C)p->next=head;(D)p=head;
3、设有一个栈顶指针为top的顺序栈S,top为0时表示栈空,则从S中取出一个元素保存在P中执行的操作是()。
(A)p=S[top++];(B)p=S[++top];
(C)p=S[--top];(D)p=S[top--];
4、广义表(a,(a,b),d,e,((i,j),k))的长度是,深度是。
()
(A)6,3(B)5,3(C)6,4(D)6,2
5、当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将(结点)数据存储在一维数组A[1…n]中时,数组中第i个结点的左子结点是。
()
(A)A[2i](2i≤n)(B)A[2i+1](2i+1≤n)
(C)A[i/2](D)条件不充分,无法确定
6、设有一棵二叉树,其先序遍历序列是acdgehibfkj,中序遍历序列是dgcheiabkfj,则该二叉树的后序遍历序列是。
()
(A)gdehickjfba(B)gdhiecfkjba
(C)dghieckjfba(D)gdhieckjfba
7、在一个有向图中,所有顶点的出度之和等于所有顶点的入度之和的倍,
所有顶点的度之和等于所有顶点的出度之和的倍。
()
(A)1/2,1(B)1,2(C)2,1(D)1,4
8、设有一组记录的关键字为{19,14,23,1,68,20,84,27},用链地址法构造哈希表,哈希函数为H(key)=keyMOD13,哈希地址为1的链表中有个记录。
()
(A)4(B)2(C)3(D)1
9、用直接插入法对下列四个序列按非递减方式排序,元素比较次数最少的是()。
(A)21,32,46,40,80,69,90,94(B)94,32,40,90,80,46,21,69
(C)32,40,21,46,69,94,90,80(D)90,69,80,46,21,32,94,40
三、分析题(每题6分,共30分)
1、若以{7,19,2,6,32,3,21,10}作为叶子结点的权值,请构造对应的Huffman树,然后求出其带权路径长度WPL。
2、对于下图中的网,写出该网的邻接链表;然后写出其广度优先搜索生成树(假设从顶点V1出发);最后给出按Kruskal算法得到的最小生成树。
3、将关键字序列(15,21,13,7,4,9,25,19,23)插入到初态为空的二叉排序树中,请画出建立二叉排序树T的过程;然后画出删除13之后的二叉排序树T1。
4、线性表的关键字集合{71,25,8,29,42,69,95,33,17,56,47},共有11个元素,已知散列函数为:
H(k)=kMOD11,采用链地址处理冲突,请给出对应的散列表结构,并计算该表成功查找的平均查找长度。
5、已知序列{15,29,13,40,17,9,38,27,52,45},请给出采用增量序列为5,3,1的希尔排序法,对该序列做非递减排序时的每一趟结果。
四、算法填空(每空2分,共20分)
请在下面各算法的空白处填上相应语句以实现算法功能。
每个空白只能填一个语句。
1、头插入法创建单链表,以整数的最大值(32767)作为输入结束,链表的头结点head作为返回值。
LNode*create_LinkList(void)
{intdata;LNode*head,*p;
head=(LNode*)malloc(sizeof(LNode));
head->next=NULL;/*创建链表的表头结点head*/
while
(1)
{scanf(“%d”,&data);
if(data==32767)break;
;
p–>data=data;
;
head–>next=p;
}
return(head);
}
2、按满二叉树的方式对结点进行编号建立链式二叉树。
对每个结点,输入结点i、结点ch。
#defineMax_Node_Num50
TypedefstructBTNode
{chardata;
structBTNode*Lchild,*Rchild;
}BTNode;
BTNode*Create_BTree()
{BTNode*T,*p,*s[Max_Node_Num];
charch;inti,j;
while
(1)
{scanf(“%d”,&i);
if(i==0)break;/*以编号0作为输入结束*/
else{ch=getchar();
p=(BTNode*)malloc(sizeof(BTNode));
p–>data=ch;
;
s[i]=p;
if(i==1)T=p;
else
{j=i/2;/*j是i的双亲结点编号*/
if()s[j]->Lchild=p;
else;
}
}
}
return(T);
}
3、图的邻接链表的结点结构如下图所示。
下面算法是从顶点v出发,递归地深度优先搜索图G。
#defineMAX_VEX_NUM30/*最大顶点数*/
BOOLEANVisited[MAX_VEX_NUM];
voidDFS(ALGraph*G,intv)
{LinkNode*p;
Visited[v]=TRUE;
Visit[v];/*置访问标志,访问顶点v*/
;
while(p!
=NULL)
{if(!
Visited[p->adjvex]);
;
}
}
4、冒泡排序算法。
#defineFALSE0
#defineTRUE1
VoidBubble_Sort(Sqlist*L)
{intj,k,flag;
for(j=0;j
{flag=TRUE;
for(k=1;k<=L->length-j;k++)/*一趟排序*/
if()
{flag=FALSE;L->R[0]=L->R[k];
L->R[k]=L->R[k+1];L->R[k+1]=L->R[0];}
if()break;
}
}
五、编写算法(要求给出相应的数据结构说明,14分)
设T是指向二叉树根结点的指针变量,用非递归方法统计树中度为1和度为0的结点个数。
《数据结构》模拟试题14参考答案
一、填空题(每小题2分,共18分)
1、线性结构树形结构图(或网)状结构
2、时间复杂度空间复杂度
3、物理上的相邻指针
4、操作受限后进先出(先进后出)
5、1340
6、左子树右子树
7、顶点数对称矩阵
8、顺序存储且有序散列存储
9、索引散列
二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)
题号
1
2
3
4
5
6
7
8
9
答案
A
C
D
B
D
D
B
C
A
三、分析题(每题6分,共30分)
1、解:
所构造的Huffman树如下图所示。
WPL=(19+21+32)×2+(6+7+10)×4+(2+3)×5
=261
2、解:
该网的邻接链表如下图所示:
从顶点V1出发的广度优先搜索的顶点序列是1→2→4→5→3,相应的生成树如下:
3、解:
将关键字序列(15,21,13,7,4,9,25,19,23)生成二叉排序树T的过程如图(a)所示;删除13之后的二叉排序树T1如图(b)所示。
4、解:
根据所给定的散列函数和处理冲突方法,得到的散列表结构如下:
成功查找的平均查找长度:
ASL=(1×8+2×2+3×1)/11=17/11
5、解:
采用增量序列为5,3,1的希尔排序法,做非递减排序时的每一趟结果如下:
四、算法填空(每空2分,共20分)
请在下面各算法的空白处填上相应语句实现算法功能。
每个空白处只能填一个语句。
1、头插入法创建单链表,以整数的最大值(32767)作为输入结束,链表的头结点head作为返回值。
P=(LNode*)malloc(sizeof(LNode))
p–>next=head–>next
2、按满二叉树的方式对结点进行编号建立链式二叉树。
对每个结点,输入结点i、结点ch。
p–>Lchild=p–>Rchild=NULL
i%2==0
s[j]->Rchild=p
3、从顶点v出发,递归地深度优先搜索图G。
p=G->AdjList[v].firstarc
DFS(G,p->adjvex)
p=p->nextarc
4、冒泡排序算法。
L->R[k].key>L->R[k+1].key
flag==TRUE
五、编写算法(要求给出相应的数据结构说明,14分)
解:
结点类型定义及算法如下:
#defineMax_Node_Num50
TypedefstructBTNode
{ElemTypedata;/*数据域,保存结点的值*/
structBTNode*Lchild,*Rchild;/*指针域*/
}BTNode;/*结点的类型*/
Voidcount_node_num(BTNode*T)
{BTNode*Stack[Max_Node_Num],*p=T,*q;
inttop=0,leaf_num=0,num1=0;
if(T==NULL)printf(“TheBinaryTreeisEmpty!
\n”);
else{do
{if(!
(p->Lchild!
=NULL&&p->Rchild!
=NULL))
{if(p->Lchild==NULL&&p->Rchild==NULL)leaf_num++;
elsenum1++;}
q=p->Rchild;
if(q!
=NULL)stack[++top]=q;
p=p->Lchild;
if(p==NULL){p=stack[top];top--;}
}
while(p!
=NULL);
printf(“度为1和0的结点数分别是:
%d,%d\n”,num1,leaf_num);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 模拟 试题 1411