已知以下的有向图,用Dijkstra算法求出从顶点1出发到各顶点的最短路径

可做奥鹏全部院校作业论文!答案请添加qq: 或 微信:

《数据结构概论》期末试卷

一、单项选择题 (请将答案填写在本大题后面的表格中每小题2分,共30分)

C.顺序存储结构和链式存储结构都能存储    D.顺序存储结构和链式存储结构都不能使用

单项选择题答题表格(请将答案填写在下表中)

二、填空题(每小题2分共30汾)

1. 下面程序段的时间复杂度为________。

2. 设数组a[M](M为最大空间个数)作为循环队列Q的存储空间front为队头指针(指向第一个存放数据的位置),rear为队尾指针(指向最后一个存放数据位置的下一个)则判定Q队列的队满条件是_____________。

3. 若已知一棵二叉树的前序序列是BEFCGDH中序序列是FEBGCHD,则它的后序序列必是________

4. 散列法存储的基本思想是由_______________决定数据的存储地址。

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

6. 设┅棵完全二叉树有700个结点则共有____________个叶子结点 。

7. n个顶点e条边的图采用邻接矩阵存储深度优先遍历算法的时间复杂度为_______________;若采用邻接表存儲时,该算法的时间复杂度为______________

8. 在堆排序和快速排序中,若初始记录接近正序或反序则选用______________;若初始记录基本无序,则最好选用_______________

9. 若要求一个稀疏图G的最小生成树,最好用_______________ 算法来求解

12. 有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的____________

三、解答题(每小题9分,共27汾)

1. 已知以下的有向图用Dijkstra算法求出从顶点1出发到各顶点的最短路径(按步给分)。

3.一棵度为2的有序树与一棵二叉树有何区别

四、程序设計题(共13分)

1、已知r[]为一维数组,其中r[0]到r[n-1]为待排序的n个元素排序好的元素仍放在r[0]到r[n-1]中,请写出对该数组进行非递归的直接插入排序算法取名为insertsort(elemtype r[],int n)。

}

1.在一个图中把所有顶點分为两个集合P,Q(P为最短路径集合,Q为待选集合)用dis数组保存源点到各个顶点的最短路径(到自身为0)。
2.初始化P集合就是加入源点到該集合,并在mark数组标记(代码中的mark[y]=1)那么Q集合就是剩下的顶点构成了。
3.在Q集合中找到这样一个顶点:源点到该顶点(记为u)的路径最短把该点加入P集合,列出以u为起点的所有边(终点记为v)判断从源点到每一个v顶点(因为以u为起点的边有多个)经过u顶点的路径是否会變小,更新dis[v]的值
4.重复3的步骤,直到Q集合为空算法结束,次时dis数组就存储了从源点到各个顶点的最短路径。

文字看的头大了还是来个例子吧

现在有一个图是这样的:
我们可以用二维数组存储它,可以看做这样:

*求源点(顶点 y )到各个顶点的朂小路径值时刻记住这个算法的作用哦 /*初始化相关数据*/ /*这个循环意味深长啊,体会下^_^*/ /*从源点出发到某点值最小,记录该点信息(值位置)*/ /*若该点在集合Q中,并且值更小*/ /*若有从该点的出边该边的起点为 u 终点为 i */ /*若借助 u 顶点,使 从源点到 顶点 i 的距离减少则跟新 dis[i] 的值*/ //输出從源点到各点的最小路径 /*读入顶点数,边数*/ /*初始化图每一个顶点到自身的距离为0,其他先初始化为不可到达状态*/ //读入每一条边的信息起点,终点权值

怎么样。。这个算法掌握没呢。。欢迎指错!

}

MVC方法常用于构建用户界面在Smalltalk通過MVC设计模式隐藏在可以帮助你了解我们所说的“模范”的意思。

MVC包括三种类型的对象模型是应用程序对象,查看其屏幕表示控制器定義了处理用户输入(响应)模式。在MVC方式之前应用程序,通常是三个对象组合在一起这些功能结合在一起,将它们分开MVC应用程序旨茬提供灵活性和可重用性。

MVC通过创建订阅/通知视图和模型视图和模型对象之间的分离协议。视图对象必须确保它反映了状态模型表示对潒当数据模型对象的变化,模型对象的通知(通知)视图对象作为反应,这种行为每有一个视图对象进行更新的机会。这种方法使嘚有可能对多个视图的对象模型中的对象提供不同的表示形式您还可以创建一个新的视图对象模型对象,而不是重新写模式下图显示叻一个模型和三视图:点击看详细从表面上看,这个例子反映的视图和模型设计的分离然而,这是专为一类的更一般的问题:降低了莲囷性的目的这样,当一个对象改变时也不会影响到其它的目的,甚至不需要知道另一个对象的实现细节这更普遍的模式将在Observer模式描述。另一个特点是方式

MVC视图对象是可嵌套定义。例如通过嵌套对象视图对象按钮控制面板按钮视图包含复杂的实施;对象观众嵌套的用戶界面视图的对象可以被重新使用的调试器组件。使用CompositeView类(查看子类)以支持嵌套图,其行为和查看对象可用于任何场合视图对象可鉯使用的行为一致MVC方法。

因此我们可以把复合视图这样的一种方式来解决它的设计(时尚)的一个组成部分。同样这样的设计可以抽潒另一个更普遍的问题(解决方案):在某些情况下,我们进入的对象群体并视为一组处理单个对象。通过这种方式我们用它来形容複合设计模式。它可以让你建立一流的水平在这个水平上,某些子类定义基本对象(如按钮)而其他类可以定义合成对象(CompositeView),合成對象可以组装成更复杂的对象原始对象

同样,MVC也可以改变视图类(视图)的方式用户的反应,不改变其视觉表现你可能想改变其响應于键盘,如使用弹出菜单而不是命令键的方式。 MVC封装的响应机制该对象(控制器)的控制。控制器具有一个类层次结构并且容易從现有的控制器来实现建立一个变种 - 一个新的控制器。

视图(View)通过对象(实例)控制器对象的实例,以实现特定的应对策略为了实現不同的政策,可以简单地使用不同的控制器实例来替换当前实例即使在运行时改变控制器的视图来改变响应于用户输入(策略)的对潒图。例如一个浏览对象可以被设置为关闭状态,即在没有任何用户输入的响应。为了实现这一目标就干脆让控制器忽略所有输入倳件。这

视图 - 控制器关系这是策略设计模式的一个典型例子。所谓策略这样一种对象,它表示的算法当你要替换算法(无论是静态還是动态替换替换),这是特别有用这样的算法可能有很多变数,或有复杂的数据结构

MVC中也使用其他的设计模式,例如使用工厂方法模式来描述默认控制器类图;使用装饰图案添加滚动条,以查看等但在MVC的方式主要是上述观察,综合和战略设计模式

v1到v2:10为最短路径;

v1到v3:7为最短路径;

v1到v4:8为最短路径;

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信