zoukankan      html  css  js  c++  java
  • 20162313 苑洪铭 实验四 图的实现与应用

    20162313 苑洪铭 实验四 图的实现与应用

    实验1

    要求

    用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器
    给出伪代码,产品代码,测试代码(不少于5条测试)

    内容

    邻接矩阵(Adjacency Matrix):是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn}。
    对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零,副对角线不一定为0。
    总的来说,这次的代码首先定义一下顶点和边,
    然后在此基础上,编写添加删除操作以及size 、isempty方法
    如图在size方法直接返回前文中定义的size值即可
    而isempty方法我认为返回size值为0时就可以了。
    深度广度迭代器课本上就有现成的代码。
    并且该试验中的大部分代码都可以在老师给的PPT上找到,包括伪代码等等。


    实验2

    要求

    用十字链表实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器
    给出伪代码,产品代码,测试代码(不少于5条测试)

    内容

    十字链表(Orthogonal List)是有向图的一种存储方法,它实际上是邻接表与逆邻接表的结合,即把每一条边的边结点分别组织到以弧尾顶点为头结点的链表和以弧头顶点为头顶点的链表中。
    可以理解为 将行的单链表和列的单链表结合起来存储稀疏矩阵称为十字链表, 每个节点表示一个非零元素。
    主要用于解决当矩阵的非零元个数和位置在操作过程中变化较大时,不宜采用顺序存储结构来表示三元组的线性表的问题。
    如图:

    该实验的主要难题我认为在于指向问题,为了完成指向操作,对于十字链表清醒的认识是最重要的。
    对于代码而言,与实验一大同小异,参考实验一的部分。
    定义顶点与边,再参考网上的代码实现其它实验要求。

    实验3

    要求

    实现PP19.9
    给出伪代码,产品代码,测试代码(不少于5条测试)

    内容

    对于PP19.9 要求很奇特,实际根据我自己的理解,翻译一下就是
    构建一个图要求有带权值的边并且求最短路径。
    当翻译成这样简单明了的要求后,
    我的办法是参考网上的代码,并且根据老师给的PPT内容,了解一下相关操作,由此进行要求实现。

  • 相关阅读:
    互联网产品跨部门沟通的10个原则(转)
    Axure 全局辅助线(转)
    2015最新移动App设计尺寸视觉规范【图文版】(转)
    iOS和Android的app界面设计规范(转)
    安卓app设计规范整理和Android APP设计篇(转)
    19条ANDROID平台设计规范(转)
    Objective-C编码规范:26个方面解决iOS开发问题(转)
    AxureRP7.0各类交互效果汇总帖(转)
    Windows Server 2016与旧版本系统比较
    application Initialization设置导致处理程序ExtensionlessUrlHandler-Integrated-4.0在其模块列表中有一个错误模块问题的解决
  • 原文地址:https://www.cnblogs.com/yuanhongming/p/7897051.html
Copyright © 2011-2022 走看看