码迷,mamicode.com
首页 > 编程语言 > 详细

20162302 实验四《查找与排序》实验报告

时间:2017-11-26 21:50:32      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:span   它的   matrix   int   blob   无向图   png   ast   结构   

实 验 报 告

课程:程序设计与数据结构

姓名:杨京典

班级:1623

学号:20162302

实验名称:查找与排序

实验器材:装有IdeaU的联想拯救者15ISK


实验目的与要求:

1.用邻接矩阵实现无向图
2.用十字链表实现无向图
3.实现PP19.9

实验内容、步骤与体会:

实验内容:


完用邻接矩阵实现无向图AdjMatrixGraph

用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器

  • 顶点类Vertex:图由顶点和边两种要素构成,在邻接矩阵实现的无向图里面边由一个矩阵就可以表示出由某一顶点指向的另一个顶点的边是否存在以及这条边的长度,而顶点需要单独一个类来盛放这个顶点的相关属性。
    技术分享图片
    其中要有它所盛放的数据以及它是否被访问过两种基本属性。可以根据情况写出方法来更改它的数据,访问它,以及给出打印时候的格式。不考虑封装的话可以直接将wasVisited变成公共的.

    public class Vertex<T> {
    private Comparable data;
    public boolean wasVisited;
    public Vertex(Comparable data){
        this.data = data;
        wasVisited = false;
    }
    public void setData(Comparable a){
        data = a;
    }
    public String toString(){
        return data+"";
    }
    }
  • 添加边setLine()和删除边的removeLine()方法:在AdjMatrixGraph里面边被都在在一个二维数组里面所以再添加和删除的时候就可以直接对这个数组进行操作。因为是无向图,所以再添加和删除的时候要处理两个方向的操作。

    public void addLines(int a, int b, int weigt) {
        if (lines[a][b] != 0)
            System.out.println("The line has been set!");
        lines[a][b] = weigt;
        lines[b][a] = weigt;
    }
    public void removeLines(int a, int b) {
        if (lines[a][b] == 0)
            System.out.println("The line has been remove!");
        lines[a][b] = 0;
        lines[b][a] = 0;
    }
  • 添加顶点的setVertex()方法和删除顶点的removeVertex()方法
    添加顶点的setVertex()方法和删除顾点的remoeVertex0方法: 添加顶点的方法比较简单,直接在数组里面放入一个新的顶点即可。
    在删除顶点的时候首先要考虑到删除的顶点是否存在,然后执行两个动作一是要把与它相连的边删除,二是要把与它后面的数据移动位置。

    首先是对于异常情况的处理,当删除不存在的顶点的时候可以抛出异常,也可以使用f判断语句来避免异常代码的执行

    if (a > count)
            System.out.println("We don‘t have enough data");
        else {};

20162302 实验四《查找与排序》实验报告

标签:span   它的   matrix   int   blob   无向图   png   ast   结构   

原文地址:http://www.cnblogs.com/yangjingdian/p/7899233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!