- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2008年自测数据结构试题
数据结构课程考试试题
(2008年秋自动化、测控)
分数
专业班级 学号 姓名
填空(15×1分)
根据数据元素间关系的基本特性,有四种基本数据结构:散列结构、_______、_______和_______。
线性表有两类不同的存储结构,分别为_______和_______。栈和队列都是操作受限的线性表,它们的共同特点是__________________,栈的特点是其操作______________。
二叉树是一种数据结构。它的特点是每个结点至多有_______。深度为k且有2k-1个结点的二叉树被称为_______。深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称_______。
有n个顶点且最大边数是n(n-1)的有向图称为_______,非连通图的每一个连通部分叫_______。
查找是根据给定的某个值,在查找表中确定一个其_______等于给定值记录的操作。有n个记录的线性表查找算法最好情况下的算法复杂度为:_____,最坏情况下的算法复杂度为:_____。
(15分) 已知一具有整数元素的矩阵M如下:
M =
说明该矩阵的特点,试用合适的数据结构存储该矩阵,并说明
这种存储结构的特点。
(10分)简述以下算法的功能(程序中S, T为栈,Elem为元素)
1、
bool Algorithm1(Stack S, int Elem)
{
Stack T;
int d;
InitStack(T);
while (!StackEmpty(S)) {
Pop(S, d);
if (d!=Elem)
Push(T, d);
}
while (!StackEmpty(T)) {
Pop(T, d);
Push(S, d);
}
}
功能:
2、
bool Algorithm2(Stack S)
{
int i, n , A[255];
n = 0;
while(!StackEmpty(S))
{
n++;
Pop(S, A[n]);
}
for(i=1;i=n;i++)
Push(S, A[i]);
}
功能:
(20分)假设用于通信的电文仅由‘A’ 、‘B’、 ‘C’、 ‘D’、 ‘E’、 ‘F’、 ‘G’、 ‘H’这8个字符组成,字母在电文中出现的频率分别为0.07、0.19、0.02、0.06、0.32、0.03、0.21、0.10。试为这8个字母设计哈夫曼编码,对该字符串进行二进制编码,使得重新编码的字符串编码最短。
(15分)对于下面的网络图,
请选用一种存储方式表示该图, 并给出存储示意图;
以V1为起点分别给出该图的深度优先搜索和广度优先搜索的输出;
给出该图的最小生成树;
(15分)下面是某种排序算法的代码
void Sorting( int a[], int n) /* 对顺序表用某种算法进行排序 */
{
int i,j,t, exchanged;
exchanged=1;
for(i=n-1; i1 exchanged; --i)
{
exchanged =0;
for(j=0;ji;++j)
{
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
exchanged =1;
}
}
}
}
试回答下列问题:
指出该算法的名称;
运用该算法,给出对顺序表(49, 38, 65, 97, 76, 13, 27, 49)进行排序的过程。
(10)画出对长度为10的有序表进行查找的判定树, 并求其等概率时查找成功的平均查找长度。
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 2
文档评论(0)