注册 登录
编程论坛 C++教室

这个程序哪里错了,求大神指教???邻接表建图

讨厌数构 发布于 2013-12-04 22:57, 487 次点击
#include<iostream>
using namespace std;
//======================================
#define MAX_VERTEX_NUM 20
struct ArcNode
{
    int adjvex;
    struct ArcNode *nextarc;
};//定义边结点类型
typedef struct VNode//定义定点结点类型
{
    char data;
    ArcNode *firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];
typedef struct
{
    AdjList vertices;
    int vexnum,arcnum;
}ALGragh;
//图的邻接表定义
//=============================
void CreateGragh(ALGragh &G);
int LocateVex(ALGragh G,char vi);
//=============================
int main()
{
    ALGragh myGragh;
    CreateGragh(myGragh);
    //print(myGragh);
    return 1;
}
//============================
void CreateGragh(ALGragh &G)
{
    int i,j,k;
    cout<<"请输入顶点数和边数"<<endl;
    cin>>G.vexnum>>G.arcnum;
    cout<<"请输入顶点数据"<<endl;
    for(k=0;k<G.vexnum;k++)
    {
        cin>>G.vertices[i].data;
        G.vertices[i].firstarc=NULL;
    }
    cout<<"请输入各边"<<endl;
    char vi,vj;
    for(k=0;k<G.arcnum;k++)
    {
        cin>>vi>>vj;
        i=LocateVex(G,vi);
        j=LocateVex(G,vj);
        ArcNode *p=new ArcNode;
        p->adjvex=j;
        p->nextarc=G.vertices[i].firstarc;//头插法
        G.vertices[i].firstarc=p;        
    }

}
//图G用邻接表表示,创建图
//================================
int LocateVex(ALGragh G,char vi)
{
    int i;
    for(i=0;i<G.vexnum;i++)
    {
        G.vertices[i].data==vi;
        return i;
    }
}
5 回复
#2
yuccn2013-12-05 13:52
你的名字看不出你有学习的态度啊

提问题最好把问题说明清楚一点,
#3
左手拉一只猫2013-12-05 20:07
具体要干啥,就建立一个图的数据结构,还是?
#4
讨厌数构2014-04-23 09:32
回复 2 楼 yuccn
是我表述不清楚,以后会注意的。谢谢
问题已经用另一个程序解决了,谢谢
#5
讨厌数构2014-04-23 09:34
回复 2 楼 yuccn
名字问题是我改代码改不出来时写的,抱歉
#6
讨厌数构2014-04-23 09:35
回复 3 楼 左手拉一只猫
是用邻接表建图。已经找出来了,谢谢
1