| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:关于图的一些程序
只看楼主 加入收藏
飘羽
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-12-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
关于图的一些程序
#define  MAXV  100  //<最大顶点个数>//   
typedef struct
{      int no;                /*顶点编号*/
       char data;                    /*顶点其他信息*/
}VertexType;            /*顶点类型*/

typedef struct                       /*图的定义*/
{      int edges[MAXV][MAXV];     /*邻接矩阵*/
        int vexnum,arcnum;                   /*顶点数,弧数*/
        VertexType vexs[MAXV];    /*存放顶点信息*/
}MGraph;
void creatMGraph(MGraph *G)
{
   VertexType *V;
   G=(MGraph *)malloc(sizeof(MGraph));
   V=(VertexType *)malloc(sizeof(VertexType));
   cout<<"输入图的顶点数:"<<endl;
   int n;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
       cout<<"请输入图的顶点信息:"<<endl;
       cin>>V->data;
       V->no=i;
   }
   cout<<"输入图的边数:"<<endl;
   cin>>G->arcnum;
   cout<<"如果边v1-》v2,则输入1,2"<<endl;
   for(int i=0;i<n;i++)
   {
       for(int j=0;j<n;j++)
       G->edges[i][j]=0;
   }
   for(int i=1;i<=G->arcnum;i++)
      { cout<<"请输入第"<<i<<"边:"<<endl;
       int n1,n2;
       cin>>n1;
       cin>>n2;
       G->edges[n1][n2]=1;
       G->edges[n2][n1]=1;
   }
}

void disMGraph(MGraph *G)
{
   cout<<endl<<"图的邻接矩阵为:"<<endl;
   for(int i=0;i<n;i++)
     for(int j=0;j<n;j++)
         cout<<G->edges[i][j];
}
#include "pubuse.h"
#include "GraphAlgo.h"
#include "GraphDef.h"
#include <iostream>
using namespace std;
void main()
{
     MGraph *G;
     creatMGraph(G);
     disMGraph(G);
}
数据结构菜鸟求解各位高手这个程序哪里错了
搜索更多相关主题的帖子: 信息 
2010-12-24 01:29
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
程序代码:
#include <iostream>
#include <cstdlib>
using namespace std;

#define  MAXV  100  //<最大顶点个数>//   
typedef struct
{      int no;                /*顶点编号*/
       char data;                    /*顶点其他信息*/
}VertexType;            /*顶点类型*/

typedef struct                       /*图的定义*/
{      int edges[MAXV][MAXV];     /*邻接矩阵*/
        int vexnum,arcnum;                   /*顶点数,弧数*/
        VertexType vexs[MAXV];    /*存放顶点信息*/
}MGraph;
void creatMGraph(MGraph **G)
{
//   VertexType *V;
   *G=(MGraph *)malloc(sizeof(MGraph));
  // V=(VertexType *)malloc(sizeof(VertexType));
   cout<<"输入图的顶点数:"<<endl;

 //  int n;
  // cin >> n;
   cin >> (*G)->vexnum;
   for( int m=1; m<=(*G)->vexnum; ++m )
   {
        cout<<"请输入图的顶点信息:"<<endl;
        cin >> (*G)->vexs[m].data;
        (*G)->vexs[m].no = m;
   }
   /*for(int m=1;m<=n;m++)
   {
       cout<<"请输入图的顶点信息:"<<endl;
       cin>>V->data;
       V->no=m;
   }*/
   cout<<"输入图的边数:"<<endl;
   cin>>(*G)->arcnum;
   cout<<"如果边v1-》v2,则输入1,2"<<endl;

 //  for(int i=0;i<n;i++)
   for(int k=0; k<=(*G)->arcnum; k++)
   {
       for(int j=0;j<=(*G)->arcnum;j++)
       (*G)->edges[k][j]=0;
   }
   for(int i=1;i<=(*G)->arcnum;i++)
      { cout<<"请输入第"<<i<<"边:"<<endl;
       int n1,n2;
       cin>>n1;
       cin>>n2;
       (*G)->edges[n1][n2]=1;
       (*G)->edges[n2][n1]=1;
   }
}

void disMGraph(MGraph *G)
{
   cout<<endl<<"图的邻接矩阵为:"<<endl;
   for(int i=1;i<=G->vexnum;i++)
   {
     for(int j=1;j<=G->vexnum;j++)
         cout<<G->edges[i][j];
     cout << endl;
   }
}
//#include "pubuse.h"
//#include "GraphAlgo.h"
//#include "GraphDef.h"

void main()
{
     MGraph *G=NULL;
     creatMGraph(&G);
     disMGraph(G);
}

//数据结构菜鸟求解各位高手这个程序哪里错了
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-12-24 12:39
飘羽
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-12-24
收藏
得分:0 
你好,我是用vc6.0软件编的,怎么程序就出了问题呢?现在还是搞不懂。
2010-12-25 00:20
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
有问题 请把错误信息贴上了


版主改的只有 图的初始化 和 打印图的矩阵 其他的就不知道咯
//#include "pubuse.h"
//#include "GraphAlgo.h"
//#include "GraphDef.h
这些头文件不理解
2010-12-26 08:07
飘羽
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-12-24
收藏
得分:0 
#include "pubuse.h"
这个文件是:#include<string.h>
            #include<ctype.h>
            #include<malloc.h> /* malloc()等 */
            #include<limits.h> /* INT_MAX等 */
            #include<stdio.h> /* EOF(=^Z或F6),NULL */
            #include<stdlib.h> /* atoi() */
            #include<io.h> /* eof() */
            #include<math.h> /* floor(),ceil(),abs() */
            #include<process.h> /* exit() */
            /* 函数结果状态代码 */
            #define TRUE 1
            #define FALSE 0
            #define OK 1
            #define ERROR 0
            #define INFEASIBLE -1
            /* #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行 */
            typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
            typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */

#include "GraphAlgo.h"
这个文件是:

#define  MAXV  100  //<最大顶点个数>//   
typedef struct
{      int no;                /*顶点编号*/
       char data;                    /*顶点其他信息*/
}VertexType;            /*顶点类型*/

typedef struct                       /*图的定义*/
{      int edges[MAXV][MAXV];     /*邻接矩阵*/
        int vexnum,arcnum;                   /*顶点数,弧数*/
        VertexType vexs[MAXV];    /*存放顶点信息*/
}MGraph;


#include "GraphAlgo.h"
这个文件是:

void creatMGraph(MGraph *G)
{
   VertexType *V;
   G=(MGraph *)malloc(sizeof(MGraph));
   V=(VertexType *)malloc(sizeof(VertexType));
   cout<<"输入图的顶点数:"<<endl;
   int n;
   cin>>n;
   for(int i=1;i<=n;i++)
   {
       cout<<"请输入图的顶点信息:"<<endl;
       cin>>V->data;
       V->no=i;
   }
   cout<<"输入图的边数:"<<endl;
   cin>>G->arcnum;
   cout<<"如果边v1-》v2,则输入1,2"<<endl;
   for(int i=0;i<n;i++)
   {
       for(int j=0;j<n;j++)
       G->edges[i][j]=0;
   }
   for(int i=1;i<=G->arcnum;i++)
      { cout<<"请输入第"<<i<<"边:"<<endl;
       int n1,n2;
       cin>>n1;
       cin>>n2;
       G->edges[n1][n2]=1;
       G->edges[n2][n1]=1;
   }
}

void disMGraph(MGraph *G)
{
   cout<<endl<<"图的邻接矩阵为:"<<endl;
   for(int i=0;i<n;i++)
     for(int j=0;j<n;j++)
         cout<<G->edges[i][j];
}

然后就是最后的源程序。cpp的
#include "pubuse.h"
#include "GraphAlgo.h"
#include "GraphDef.h"
#include <iostream>
using namespace std;
void main()
{
     MGraph *G;
     creatMGraph(G);
     disMGraph(G);
}
2010-12-26 23:28
飘羽
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-12-24
收藏
得分:0 
出现的错误有:
d:\graphalgo.h(1) : error C2065: 'MGraph' : undeclared identifier
d:\graphalgo.h(1) : error C2065: 'G' : undeclared identifier
d:\graphalgo.h(1) : error C2297: '*' : illegal, right operand has type 'int *'
d:\graphalgo.h(2) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
d:\graphalgo.h(34) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
d:\graphdef.h(12) : error C2378: 'MGraph' : redefinition; symbol cannot be overloaded with a typedef
d:\graphdef.h(21) : error C2146: syntax error : missing ';' before identifier 'data'
d:\graphdef.h(21) : error C2501: 'ElemType' : missing storage-class or type specifiers
d:\graphdef.h(21) : error C2501: 'data' : missing storage-class or type specifiers
d:\graphuse.cpp(8) : warning C4552: '*' : operator has no effect; expected operator with side-effect
d:\graphuse.cpp(9) : error C2065: 'creatMGraph' : undeclared identifier
d:\graphuse.cpp(10) : error C2065: 'disMGraph' : undeclared identifier
执行 cl.exe 时出错.
最奇怪是第一个错误,我明明都定义了,为什么还说我没定义呢?
有的语句有分号又说缺少分号,我都不知道怎么改啊?
哪位高手能帮帮我啊?
2010-12-31 18:05
快速回复:关于图的一些程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027482 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved