数据结构5—图-邻接表 java实现

一、概述

邻接表处理方法:

  1. 用一位数组存储顶点(为何不用单链表存储?数组可以较容易获得读取顶点信息),此外,每个数据元素还存储指向第一个邻接点的指针;
  2. 每个顶点Vi的所有邻接点构成一个线性表。

图的邻接表结构

  • data:数据域,存储顶点Vi的名或其他信息 firstedge:指针域,指向此顶点的第一个邻接点

    adjvex:邻接点域,指示与Vi连接的节点在图中的位置 info:存储边或弧的相关信息,如权值,边编号等
    next:下一条边或弧的相关信息

二、图的邻接表存储表示

  1. 头节点类
public class VertextNode {

    private String data;//顶点域   
    private EdgeNode firstEdge;
    private int id;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
    public EdgeNode getFirstEdge() {
        return firstEdge;
    }
    public void setFirstEdge(EdgeNode firstEdge) {
        this.firstEdge = firstEdge;
    }           
}
  1. 边表节点
public class EdgeNode {

    private String Adjvex;//邻接点域,存储该顶点对应下标
    private int weight;//权重
    private EdgeNode next;
    private int edgeInfo;//边值

    public int getEdgeInfo() {
        return edgeInfo;
    }
    public void setEdgeInfo(int edgeInfo) {
        this.edgeInfo = edgeInfo;
    }
    public String getAdjvex() {
        return Adjvex;
    }
    public void setAdjvex(String adjvex) {
        Adjvex = adjvex;
    }
    public int getWeight() {
        return weight;
    }
    public void setWeight(int weight) {
        this.weight = weight;
    }
    public EdgeNode 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值