数据结构Word文档下载推荐.docx

上传人:b****7 文档编号:22107141 上传时间:2023-02-02 格式:DOCX 页数:9 大小:239.10KB
下载 相关 举报
数据结构Word文档下载推荐.docx_第1页
第1页 / 共9页
数据结构Word文档下载推荐.docx_第2页
第2页 / 共9页
数据结构Word文档下载推荐.docx_第3页
第3页 / 共9页
数据结构Word文档下载推荐.docx_第4页
第4页 / 共9页
数据结构Word文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据结构Word文档下载推荐.docx

《数据结构Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

数据结构Word文档下载推荐.docx

作为算法加工对象的量值,通常体现为算法中的一组变量。

有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已嵌入算法之中。

(5)有输出:

它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。

2、什么是数据结构?

数据结构包含那两个层次,其含义分别是什么?

数据结构是相互存在着某种逻辑关系的数据元素的集合。

数据结构包括“逻辑结构”和“物理结构”两个方面(层次)。

逻辑结构是对数据元素之间逻辑关系的描述,它可以是一个数据元素的集合和在定义在此集合上的若干关系来表示。

物理结构是逻辑结构在计算机中的表示和实现。

3、数据结构通常的形式定义描述是什么?

给出一年四季(春、夏、秋、冬)的数据结构描述。

数据结构是一个二元组。

Data_structures={D,R},其中D是数据元素的有限集.

R是D上关系的有限集。

一年四季的数据结构:

Seasons={D,R};

D={spring,summer,autumn,winter};

R={<

spring,summer>

<

summer,autumn>

autumn,winter>

winter,spring>

};

4、回答下列问题:

(1)线性表有哪两类存储结构?

(2)若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素地址是100,则第15个元素地址是什么?

 

(1)线性表有顺序存储结构和链式存储结构。

(2)第15个元素地址是:

100+(15-1)*4=156;

5、回答下列问题:

(1)简述什么是栈,栈的特点是什么?

(2)对于一个栈,给出输入项A,B,C,如果输入项序列为ABC,试给出全部可能的输出序列。

(1)栈是一个线性表,其插入和删除操作都在表的同一端进行。

其中进行插入和删除操作一端被称为栈顶,另一端被称为栈底。

栈的特点是先进后出(FILO,first-in-last-out)。

(2)A进A出B进B出C进C出,产生输出序列ABCA进A出B进C进C出B出,产生输出序列ACBA进B进B出A出C进C出,产生输出序列BACA进B进B出C进C出A出,产生输出序列BCAA进B进C进C出B出A出,产生输出序列CBA

6、回答下列问题:

(1)在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数是多少?

(2)若频繁地对线性表进行插入和删除操作,该线性表应采用的存储结构是什么?

为什么采用这种存储结构?

(1)元素移动的次数是n-i。

(2)应采取链式存储结构。

1、比顺序存储结构的存储密度小(每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式存储更多)。

2、逻辑上相邻的节点物理上不必相邻。

3、插入、删除灵活(不必移动节点,只要改变节点中的指针)。

4、查找结点时链式存储要比顺序存储慢。

5、每个结点是由数据域和指针域组成。

7、回答二叉树的下列问题:

(1)二叉树有哪几种形态?

分别画出。

(2)对任何一棵二叉树,若它含有n0个叶子结点、n2个度为2的结点,则n0和n2之间的关系是什么?

并给出证明过程。

(1)空树;

只有根结点:

右子树为空:

左子树为空:

左右子树都不为空:

(2)n0=n2+1。

n0个叶子结点、n2个度为2的结点证:

二叉树结点数n=n0+n1+n2(n1是度为1的结点数)分支数b=n1+2n2;

b=n-1=n0+n1+n2-1则n1+2n2=n0+n1+n2-1;

n0=n2+1

8、给定一棵二叉树的两种遍历序列,前序遍历序列为D,A,C,E,B,H,F,G,I;

中序遍历序列为D,C,B,E,H,A,G,I,F;

试画出这颗二叉树,并简述由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法。

求解思想:

(1)由前序遍历结果可知D为根结点,再看中序遍历结果,因为中序遍历顺序是左子树、根、右子树,因此可断定,左子树为空,CBEHAGIF为右子树中序遍历结果。

(2)回到前序遍历结果,用相同方法分别递归分析左子树和右子树,直至到达最后一个节点。

9、若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则画出这颗二叉树,并给出它的后序序列?

后序序列:

FEGHDCB

10、简述普里姆算法的思想,给出使用普里姆算法构造下图的一棵最小生成树的过程。

普里姆算法:

取图中任意顶点V作为生成树的根,之后向生成树上添加顶点W,在添加的顶点W和已经在生成树上的V之间必定存在一条边,并且该边的权值在所有连通顶点V和W之间的权值最小,之后继续向生成树上添加顶点,直至生成树上有n-1个顶点为止。

11、上图所示是七个城市之间的线路图,线路上面的数字是两个城市之间的距离,试叙述普里姆算法的思想,并用普里姆算法求出要旅游这7个城市,最短要走多少路程?

普里姆算法:

最短路程:

14+8+3+5+16+17=63

12、上图所示是七个城市之间的线路图,线路上面的数字是两个城市之间的距离,试叙述克鲁斯卡尔算法的思想,并用该算法求出要旅游这7个城市,最短要走多少路程?

克鲁斯卡尔算法:

先构造一个只含n点的子图SG,然后从权值最小的边开始,如果它的添加不使SG产生回路,则在SG上添加这条边。

最短路程:

3+5+8+14+16+17=63

13、简述图的广度优先搜索算法?

对于下图,给出从B点开始的广度优先遍历顺序。

广度优先搜索算法:

假设从图中V点出发,在访问了V后依次访问V的各个未曾访问过的邻接点,然后分别从这些邻接点出发,依次访问他们的邻接点,并使“先被访问的邻接点的邻接点”先于“后被访问的邻接点的邻接点”被访问,直至图中被访问的顶点的邻接点都被访问到。

若此明亮图中尚有顶点未被访问到,则另先图中的一个未曾被访问的顶点作为起点,重复以上过程,直至图中所有顶点都被访问到。

广度优先遍历:

BCAGHDEFK(结果不唯一)

14、简述图的深度优先搜索算法?

对于下图,给出从B点开始的深度优先遍历顺序。

深度优先搜索算法,可从图的某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;

深度优先遍历顺序:

BACHDEKFG(结果不唯一)

15、已知序列{503,87,512,61,908,170,897,275,652,462},采用快速排序法对该序列作升序排序时的每一趟的结果。

第1趟:

[462,87,275,61,170]503[897,908,652,512]第2趟:

[170,87,275,61]462,503[897,908,652,512]第3趟:

[61,87]170[275]462,503[897,908,652,512]第4趟:

61[87]170[275]462,503[897,908,652,512]第5趟:

61,87,170[275]462,503[897,908,652,512]第6趟:

61,87,170,275,462,503[897,908,652,512]第7趟:

61,87,170,275,462,503[512,652]897[908]第8趟:

61,87,170,275,462,503,512[652]897[908]第9趟:

61,87,170,275,462,503,512,652,897[908]第10趟:

61,87,170,275,462,503,512,652,897,908

16、已知序列{17,18,60,40,7,32,73,65,85},请给出采用冒泡排序法对该序列作升序排序时的每一趟的结果。

17,18,40,7,32,60,65,73,85第2趟:

17,18,7,32,40,60,65,73,85第3趟:

17,7,18,32,40,60,65,73,85第4趟:

7,17,18,32,40,60,65,73,85第5趟:

7,17,18,32,40,60,65,73,85第5趟无元素交换,排序结束。

17、已知序列{10,18,4,3,6,12,1,9,15,8},请给出采用归并排序法对该序列作升序排序时的每一趟的结果。

第1趟:

[10,18][3,4][6,12][1,9][8,15]第2趟:

[3,4,10,18][1,6,9,12][8,15]第3趟:

[1,3,4,6,9,10,12,18][8,15]第4趟:

[1,3,4,6,8,9,10,12,15,18]第4趟归并完毕,排序结束。

算法题对一个有序表,可以用折半搜索来快速查找元素,试写出折半搜索的算法,并比较其同顺序搜索算法的时间复杂度?

intsearch_bin(SStabletab,Keytypekval){low=1;

high=tab.length;

while(low<

=high){mid=(low+high)/2;

if(kval==tab.key[mid])returnmid;

elseif(kval<

tab.key[mid]high=mid-1;

elselow=mid+1;

}return0;

}顺序查找:

ASLSS=(n+1)/2折半查找:

ASLbs=log2(n+1)-1折半查找效率比顺序查找高,但只适用于有序表,且仅限于顺序存储结构。

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

当前位置:首页 > 解决方案 > 学习计划

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

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