武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx

上传人:b****6 文档编号:5775155 上传时间:2023-01-01 格式:DOCX 页数:11 大小:61.36KB
下载 相关 举报
武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx_第1页
第1页 / 共11页
武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx_第2页
第2页 / 共11页
武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx_第3页
第3页 / 共11页
武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx_第4页
第4页 / 共11页
武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx

《武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx》由会员分享,可在线阅读,更多相关《武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx(11页珍藏版)》请在冰豆网上搜索。

武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院.docx

武汉纺织大学806数据结构B卷考研真题考研试题硕士研究生入学考试试题原武汉科技学院

武汉科技学院

2008年招收硕士学位研究生试卷

科目代码

806

科目名称

数据结构(B)

考试时间

2008年1月20日下午

报考专业

计算机应用技术

1、试题内容不得超过画线范围,试题必须打印,图表清晰,标注准确。

2、试题之间不留空格。

3、答案请写在答题纸上,在此试卷上答题无效。

题号

十一

得分

得分

本试卷总分150分,考试时间3小时。

共10页第1页

共10页第2页

1、在双向循环链表中,在p所指的结点之后插入指针s所指的新结点,其操作步骤是。

A.s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;

B.p->next=s;s->prior=p;p->next->prior=s;s->next=p->next;

C.p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;

D.s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;

2、设C语言数组Data[m]作为循环队列的存储空间,front为队头指针,rear为队尾指针,则求队列长度的表达式是。

A.(front-rear)%m;B.(front–rear+m)%m;

C.(rear-front)%m;D.(rear–front+m)%m;

3、设有一顺序栈T,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是。

A.6B.5C.3D.2

4、设有一个字符串S="windows",其子串的数目是个。

A.25B.26C.27D.28

5、设S="wuse"则StrLength为求串长的函数,则StrLength(S)=。

A.7B.6C.5D.4

6、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为。

A.7B.6C.5D.4

7、已知树中结点总数为n,则树中所有结点的度之和为。

A.nB.2*n

C.n-1D.n*(n-1)

8、二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用

遍历方式实现编号。

A.层次遍历B.先序遍历C.中序遍历D.后序遍历

共10页第3页

13、设无向图的顶点个数为n,则该图最多可以有条弧。

A.n-1B.n(n-1)/2C.n(n-1)D.n2

9、一个n个顶点的连通有向图,其边的个数至少为。

A.n-1B.nC.n+1D.n*(n-1)

10、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={,,,,,,,,

},G的拓扑序列是。

A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7

C.V1,V3,V4,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V7

11、对于具有256个记录的文件,若采用分块查找法,且每块长度为16,则平均查找长度为。

A.15B.16C.17D.18

12、设散列表长m=14,哈希函数H(key)=key%11。

表中已有4个结点。

Addr(15)=4;addr(38)=5;addr(61)=6;addr(84)=7,其余地址为空。

如果用二次探查法处理冲突,关键字为49的结点的地址是。

A.6B.8C.9D.11

13、下列四个序列中,哪一个是堆。

A.16,23,53,31,94,72B.94,23,31,72,16,53

C.16,53,23,94,31,72D.16,72,31,23,94,53

14、在下列的排序方法中,方法可能出现这种情况:

在最后一趟开始之前,所有的元素都不在其最终应在的正确位置上。

A.快速排序B.冒泡排序C.堆排序D.插入排序

15、下面四种内排序方法中,需要辅助空间最大的是。

A.快速排序B.堆排序C.希尔排序D.归并排序

二、判断题(每题1分,共10分)

1、在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。

 

共10页第4页

2、顺序存储方式只能用于存储线性结构。

3、设一个栈的输入序列为A、B、C、D,则借助一个栈所得到的输出序列不可能是A、B、C、D。

4、空串的长度等于0。

5、将一棵树转换成二叉树(即,孩子兄弟树)存储,则根结点一定没有左子树。

6、在赫夫曼编码中,当两个字符出现的频率相同时,其编码也相同。

7、关键路径是AOE网(以边表示活动的网)中,从源点到终点的最长路径。

8、二叉排序树的查找和折半查找的时间性能相同。

9、基数排序是将多关键字分配排序的高位优先排序法用于单关键字的排序方法。

10、快速排序是稳定的排序方法。

三、填空题(每题2分,共20分)

1、数据结构的形式化定义为(D,S),其中D是数据元素的有限集,S是D上的有限集。

2、数据元素之间的关系在计算机中有两种不同的表示方法:

顺序映象和非顺序映象,由此得到两种不同的存储结构是存储结构和链式存储结构。

3、一个算法具有5个特性:

有穷性、确定性、可行性、有零个或多个输入、

4、长度为n的顺序表,在任何位置上插入一个元素的概率相等,插入一个元素时平均移动个元素。

5、将长度为m的单链表链接在长度为n的单链表之后的算法的时间复杂度为。

6、最大容量为m的循环队列,队尾指针是rear,队头指针是front,则判断队列为空的条件是:

7、设两个字符串分别为:

S1="Todayis",S2="20Jan,2008.",调用联接函数Concat(T,S1,S2)后,串T为:

8、用二叉链表表示n个结点的二叉树时,必定存在个空链域。

9、从平均性能而言,排序是排序算法中最快的一种。

 

共10页第5页

10、Prim(普里姆)算法的时间复杂度是O(n2),它适用于求网的最小生成树;Kruskal(克鲁斯卡尔)算法的时间复杂度是O(eloge),它适用于求网的最小生成树。

四、算法填空题(每空2分,共20分)

1、在顺序表L的第i个元素之前插入新的元素e。

#defineOK1

#defineERROR0

#defineOVERFLOW–2

#defineLIST_INIT_SIZE100//表存储空间的初始分配量

#defineLISTINCREMENT10//表存储空间的分配增量

typedefstruct{

ElemType*elem;//存储空间基址

intlength;//当前长度

intlistsize;//存储容量

}SqList;

typedefintStatus;

StatusListInsert_Sq(SqList&L,inti,ElemTypee)

{if(i<1||i>L.length+1)returnERROR;//插入位置不合法

if(

(1))//当前存储空间已满,增加分配

{newbase=(ElemType*)realloc(L.elem,

(L.listsize+LISTINCREMENT)*sizeof(ElemType));

if(!

newbase)exit(OVERFLOW);//存储分配失败

L.elem=newbase;//新基址

L.listsize+=LISTINCREMENT;//增加存储容量

}

q=&(L.elem[i-1]);//q指示插入位置

 

 

for(p=&(L.elem[L.length-1]);p>=q;--p)

(2);//插入位置及之后的元素后移

*q=e;//插入e

++L.length;//表长增一

returnOK;

}//ListInsert_Sq

2、在带头结点的单链表L中,删除第i个元素,并由e返回其值。

#defineOK1

#defineERROR0

typedefstrucLNode{

ElemTypedata;

structLNode*next;

}LNode,*LinkList;

typedefintStatus;

StatusListDelete_L(LinkList&L,inti,ElemType&e)

{

p=L;j=0;

while(p->next&&j

{

(3);++j;//p指针指向下一个元素

}

if(!

(p->next)||j>i-1)//删除位置不合理

returnERROR;

q=p->next;p->next=q->next;//删除结点

e=q->data;(4);//释放已经删除的结点

returnOK;

}//ListDelete_L

3、在带头结点的单链表中第i个位置前插入元素。

#defineOK1

#defineERROR0

typedefstrucLNode{

ElemTypedata;

structLNode*next;

}LNode,*LinkList;

typedefintStatus;

 

 

共10页第6页

 

3、reara、rearb是循环链表A、B的尾指针,将B合并到A的尾部。

typedefstrucLNode{

ElemTypedata;

structLNode*next;

}LNode,*LinkList;

LinkListConnect(LinkListreara,LinkListrearb)

{p=reara->next;//p为表A的头指针

reara->next=(5);//将表B连接到表A的尾

free(rearb->next);//释放表B的头结点

rearb->next=p;//将表B的尾结点的指针域指向表A的头

return(6);//返回新循环链表的尾指针

}

4、计算二叉树的叶子结点个数。

 

typedefintTElemType;

typedefstructBiTNode{

TElemTypedata;

structBiTNode*lchild,*rchild;//左右孩子指针

}BiTNode,*BiTree;

intLeaf(BiTreeT)

{

if(T)

{

if((7))//如果T是叶子结点

return1;

elsereturnLeaf(T->lchild)+(8);//左右子树叶子结点个数之和

}

elsereturn0;

}

 

 

共10页第7页

 

 

共页第页

 

5、有序表的查找

typedefintKeyType;

typedefstruct

{KeyTypekey;

}ElemType;

typedefstruct

{ElemType*elem;

intlength;

}SSTable;

intSearch_Bin(SSTableST,KeyTypekey)

{low=1;high=ST.length

while(low<=high){

mid=(9);

ifEQ(key,ST.elem[mid].key)//找到待查元素

returnmid;

elseifLT(key,ST.elem[mid].key)//继续在前半区间查找

high=mid-1;

else(10);}//继续在后半区间查找

return0;

}

五、计算与证明题(每题4分,共20分)

1、计算下面序段的时间复杂度。

for(i=1;i<=n;++i)

for(j=1;j<=i;++j)

for(k=1;k<=j;++k)

{

x++;

}

 

 

共10页第8页

 

 

 

 

共10页第9页

 

 

2、已知一棵二叉树的按层遍历序列是ABCDEFGHIJ,中序遍历序列是

DBGEAHFIJC,①构造出该二叉树;②给出该二叉树的先序遍历序列;

③给出该二叉树的后序遍历序列。

3、已知无向图的邻接表如下,①画出这个图;②写出该图的邻接矩阵A;

③根据邻接表,写出从顶点V1出发,深度优先遍历该图所得到的顶点序列。

4、已知一组关键字为(19,5,21,24,45,20,68,27,70,11,10),表长15,请按哈希函数H(key)=keyMOD13和线性探测处理冲突。

①构造该哈希表;②说明查找关键字10必须依次和表中哪些关键字比较。

5、给出一组关键字序列{49,38,65,97,76,13,27,49},写出用下列算法按从小到大排序,第一趟结束时的序列。

①希尔排序(第一趟排序的增量为5);

②快速排序(选第一个记录为枢轴(分隔));

③链式基数排序(基数为10)。

七、算法设计题(共10分)

试写一个算法,删除带头结点单链表L中所有大于min且小于max的元素(若表中存在这样的元素)同时释放被删除结点的空间(min和max是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。

typedefintElemType;

typedefstrucLNode

{ElemTypedata;

structLNode*next;

}LNode,*LinkList;

voidDelete_Between(LinkList&L,ElemTypemin,ElemTypemax)//函数首部

 

 

1

2

3

4

5

 

共10页第10页

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1