java中图的构造与遍历

这篇博客介绍了图的基本概念,包括有向图与无向图,以及边和点的定义。接着详细阐述了如何在Java中构造图,包括边和点的构造类设计。最后,探讨了图的遍历方法,包括深度遍历(栈和递归实现)和广度遍历(队列实现)。
摘要由CSDN通过智能技术生成

1、图的定义。

图分为两个部分组长,包括边和点。将点用边连接起来就形成了图。
图也分为有向图与无向图。有向图就是边会带上方向。指明从哪个点到哪个点,反之无向图指没有方向得边。更多的时候会给边加上值,在图中,我们称之为该边得权。有向图中,叫做,有向带权图。无向图中,叫做,无向带权图。

2、图的构造

图是由边和点组成。那么构造就从边和点开始。
边:
每条边得两端各对应一个点,边得大小。所以图得边构造类如下:

 /**
     * 图中的边
     */

    //边的左节点
    GraphNode leftNode;

    //边的右节点
    GraphNode rightNode;

    //边的权值
    int value;

    public GraphEdge(GraphNode leftNode,GraphNode rightNode,int value){
        this.leftNode = leftNode;
        this.rightNode = rightNode;
        this.value = value;
    }

点:

一个点可对应零条或者多条边。以及为了图得遍历,可对点设置boolean值。用来判断该点是否遍历过。点得构造类如下:

/**
     * 图的节点
     */
     int value;//节点得值
     boolean tf;//节点是否遍历过

     List<GraphEdge> edges;//该节点连接得边


     public GraphNode(int value,boolean tf){
         this.value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值