十字链表存储有向图

十字链表是邻接表和逆邻接表的一种结合,顶点结点和弧结点如图:这里写图片描述
这样,求一个顶点的出度,入度都比较方便,一般用来存储有向图,下面便是实现部分了,大体和之前几种存储方式差不多,只是由于存储方式的不同而略有不同而已
crossedList.h

#pragma once
# include<iostream>
# include"vertex.h"

typedef struct _arcNode//弧结点
{
    int tailVertex;//弧尾结点
    int headVertex;//弧头结点
    double info;//弧的信息,比如权重
    struct _arcNode *headLink=NULL;//指向弧头相同的弧结点的指针
    struct _arcNode *tailLink=NULL;//指向弧尾相同的弧结点的指针
}arcNode;
typedef struct _vertexNode//顶点结点
{
    int numOfVertex;//顶点的编号,从0开始
    arcNode *firstIn = NULL;//指向弧头相同的链表
    arcNode *firstOut = NULL;//指向弧尾相同的链表
}vertexNode;

class crossedList
{
   
   
public:
    crossedList(int iNumOfVertex, int iNumOfArc);//构造函数
    ~crossedList();//析构函数
    void create();
    void setVisitedFalse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值