鱼C论坛

 找回密码
 立即注册
查看: 3285|回复: 1

关于邻接多重表的问题

[复制链接]
发表于 2015-5-27 23:24:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Aagxe 于 2015-5-28 15:21 编辑

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;

#define MAXVEX 100

typedef struct EdgeTableNode        //边表结构
{
    int            iVex;
    int            jVex;
    EdgeTableNode *iLink;
    EdgeTableNode *jLink;
} InOutEdgeNode;

typedef struct VertexNode
{
    char vex;
    EdgeTableNode *first;
} OrthogonalList, OList;

struct OListGraph
{
    OList list[MAXVEX];
    int numVertexes;
    int numEdges;
};

void  CreateOList(OListGraph *g)
{
    cout << "输入顶点数和边数,空格间隔:" << endl;
    cin >> g->numVertexes >> g->numEdges;

    EdgeTableNode *e,*temp;

    cout << "输入顶点元素,空格间隔:" << endl;

    for(int i = 0; i < g->numVertexes; i++)
    {
        cin >> g->list[i].vex;
        g->list[i].first = nullptr;
    }


    char vi, vj;
    int viPos, vjPos;

    for(int i = 0; i < g->numEdges; i++)
    {
        cout << "按顺序输入边,空格间隔" << endl;
        cin >> vi >> vj;

        viPos = -1;
        vjPos = -1;

        for(int j = 0; j < g->numVertexes; j++)        //找到输入边对应的顶点下标,然后转换
        {
            if(vi == g->list[j].vex)
            {
                viPos = j;
            }

            if(vj == g->list[j].vex)
            {
                vjPos = j;
            }

            if(viPos != -1 && vjPos != -1)
            {
                break;
            }
        }

        e = new EdgeTableNode;
        e->iVex = viPos;
        e->jVex = vjPos;

        //头插法
        e->iLink = g->list[viPos].first;
         g->list[viPos].first = e;

        e->jLink = g->list[vjPos].first;
        g->list[vjPos].first = e;
    }
}

void main()
{
    OListGraph *g = new OListGraph;
    CreateOList(g);

    system("pause");
}

这是我写的创建邻接多重表的代码,但是测试后有问题,想了半天都不知道要怎么更改,问题就是iLink和jLink不能按照邻接多重表中的定义去指向网上的代码我看过,执行出来的结果和我一样,所以我就想不明白了

问题自己解决了,只是我犯傻了,只要在初始化的时候都为first创建一个头结点,并且头插法改为尾插法问题就解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-28 09:27:07 | 显示全部楼层
:sad
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 15:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表