邻接多重表存储无向图以及有关操作

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 21:12 点击:

 

数据结构是编程里面最重要的一门基础课之一,所以学多少遍都不可以嫌多,算法的知识当然是融在其中,多练习,多思考,基础打好了,其他的东西学起来也就so easy了。

 

邻接多重表,是对用邻接表存储无向图的一种压缩存储,当然也是链式存储,邻接多重表的相关概念,可以百度、谷歌、或者看有关书籍。大部分书都没有详细介绍这个结构的应用(至少我目前还没看到有书上有写),只是说 这个结构在对无向图的边进行操作的时候会比较方便,确实有一点吧,在插入和删除边的时候,虽然不用想邻接表那样去找两条,但是也是需要进行一些判判断。下面是代码,邻接多重表存储的无向图的一些相关操作:

 

文件"graph.h"

 

 

#include <iostream> 

#include <string> 

#include <queue> 

#include <stack> 

using namespace std; 

 

bool visited[100]; //顶点是否被访问标志 

 

//邻接多重表的存储 

//边结点 

struct EBox 

    int mark;//标志域,指示该边是否被访问过(0:没有1:有) 

    int ivex,jvex;//该边关联的两个顶点的位置 

    EBox *ilink,*jlink;//分别指向关联这两个顶点的下一条边 

}; 

 

//顶点结点 

struct VexBox 

    string data;  //顶点名称 

    EBox *firstedge;//指向第一条关联该结点的边 

}; 

 

class AMLGraph 

private: 

    VexBox *adjmulist; //顶点数组指针 

    int vexnum; //定点数目 

    int arcnum; //边数目 

    int maxnum; //顶点数最大值 

public: 

    AMLGraph(int num=20) 

    { 

        adjmulist=new VexBox[num]; 

        maxnum=num; 

    } 

     

    ~AMLGraph() 

    { 

        delete[]adjmulist; 

    } 

 

    //定位顶点在顶点数组中的位置 

    int Locate_Vex(string v) 

    { 

        for(int i=0;i<vexnum;i++) 

            if(adjmulist[i].data == v) 

                return i; 

        return -1; 

    } 

 

    void CreateUDG_AML() 

    { 

        //邻接多重表,存储无向图 

        string v1,v2; 

        int i,j,k; 

        cout<<"输入定点数目和弧的数目:"; 

        cin>>vexnum>>arcnum; 

 

        while(vexnum>maxnum) 

        { 

            cout<<"顶点数目太多,请重新输入顶点数和边数:"; 

            cin>>vexnum>>arcnum; 

        } 

 

      &

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Request.ServerVariables 参数大全
      • 执行全文索引时出现权限不足的解决方法
      • 导入excel文件处理流程节点的解决方案
      • 查看sql修改痕迹(SQL Change Tracking on Table)
      • MongoDB安装为Windows服务方法与注意事项
      • App数据层设计及云存储使用指南
      • PostgreSQL启动过程中的那些事三:加载GUC参数
      • 写给MongoDB开发者的50条建议Tip1
      • Percolator与分布式事务思考(二)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1