资源简介

数据结构实验源代码

资源截图

代码片段和文件信息

#include “mymain.h“
void PrintMenu()//菜单
{
printf(“&**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**\n“);
printf(“1.***-*-*手动构造一个图*-*-*-*-***\n“);
printf(“2.***-*-*从文件导入一个图*-*-*-***\n“);
printf(“3.***-*-*显示图的信息*-*-*-*-*-***\n“);
printf(“4.***-*-*进行深度优先遍历图*-*-***\n“);
printf(“5.***-*-*进行广度优先遍历图*-*-***\n“);
printf(“0.***-*-*退出程序*-*-*-*-*-*-*-***\n“);
    printf(“&**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**\n“);
}
int readdate(AMLGraph &G)                                                   //从文件导入一个图
{
FILE *fp*pp;
EBox *p;

int i=0;
int bj;
int V1V2;
if((fp=fopen(“data.txt““r“))==NULL)
{
printf(“打开文件失败\n“);
exit(0);
}
fscanf(fp“%d%d“&G.vexnum&G.degenum);
    for(i=0;!feof(fp);i++)
    {
        fscanf(fp“%d“&G.adjmulist[i].data);
        G.adjmulist[i].firstedge=NULL;
    }
    fclose(fp);
if((pp=fopen(“graph.txt““r“))==NULL)
{
printf(“打开文件失败\n“);
exit(0);
}
while(!feof(pp))
{
   fscanf(pp“%d%d“&V1&V2);
   b=LocateVex(GV1); /* 一端 */
       j=LocateVex(GV2); /* 另一端 */
       p=(EBox*)malloc(sizeof(EBox));
       p->mark=0; /* 设初值 */
       p->ivex=b;
       p->jvex=j;
       p->info=NULL;
       p->ilink=G.adjmulist[b].firstedge; /* 插在表头 */
       G.adjmulist[b].firstedge=p;
       p->jlink=G.adjmulist[j].firstedge; /* 插在表头 */
       G.adjmulist[j].firstedge=p;
}
    //Display(G);
    fclose(pp);
return 1;
}

int LocateVex(AMLGraph GVertexType u)                                      // 查G和u有相同特征的顶点,若存在则返回该顶点在无向图中位置;否则返回-1
{
int i;
for(i=0;i {
if(u==G.adjmulist[i].data)
return i;

}
return -1;
}

VertexType GetVex(AMLGraph Gint v)                                        //以v返回邻接多重表中序号为i的顶点
{
int i;
if(v>G.vexnum||v<0) exit(0);
    return G.adjmulist[i].data;
}

void CreateGraph(AMLGraph &G)                                               //采用邻接多重表存储结构构造无向图G
{
EBox *p;
int jik;
VertexType v1v2;
    printf(“输入无向图的顶点数%d:\n“G.vexnum);
    scanf(“%d“&G.vexnum);
printf(“输入无向图的边数%d:\n“G.degenum);
    scanf(“%d“&G.degenum);
    printf(“请输入所有的顶点:\n“);
    for(i=0;i    {
       scanf(“%d“&G.adjmulist[i].data);
       G.adjmulist[i].firstedge=NULL;
}
    for(k=0;k    {
       printf(“请输各边(弧头,弧尾):\n“);
       scanf(“%d%d“&v1&v2);
       i=LocateVex(Gv1); /* 一端 */
       j=LocateVex(Gv2); /* 另一端 */
       p=(EBox*)malloc(sizeof(EBox));
       p->mark=0; /* 设初值 */
       p->ivex=i;
       p->jvex=j;
       p->info=NULL;
       p->ilink=G.adjmulist[i].firstedge; /* 插在表头 */
       G.adjmulist[i].firstedge=p;
       p->jlink=G.adjmulist[j].firstedge; /* 插在表头 */
       G.adjmulist[j].firstedge=p;
}
    Display(G);
}

void Display(AMLGraph G)                                                    //输出无向图的邻接多重表G
{
int i;
EBox *p;
    MarkUnvizited(G);
    printf(“输出无向图的顶点个数:%d\n“G.vexnum);
printf(“输出无向图的边的个数:%d\n“G.degenum);
    for(i=0;i  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-03-23 16:30  数据结构\
     目录           0  2020-03-23 16:30  数据结构\图的遍历演示\
     目录           0  2020-03-23 16:30  数据结构\图的遍历演示\graph_traverse\
     目录           0  2020-03-23 16:30  数据结构\图的遍历演示\graph_traverse\graph_traverse\
     文件          73  2017-07-04 11:03  数据结构\图的遍历演示\graph_traverse\graph_traverse\data.txt
     文件          20  2017-07-05 08:58  数据结构\图的遍历演示\graph_traverse\graph_traverse\data1.txt
     文件           0  2017-07-05 09:40  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph.asp
     文件        6101  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph.cpp
     文件        1920  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph.h
     文件        6190  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph.o
     文件         188  2017-07-04 10:16  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph.txt
     文件          43  2017-07-05 09:19  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph1.txt
     文件        4853  2017-07-05 10:06  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph_traverse.dsp
     文件         553  2017-07-05 09:42  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph_traverse.dsw
     文件       74752  2017-07-07 10:15  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph_traverse.ncb
     文件       55808  2017-07-07 10:15  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph_traverse.opt
     文件        2302  2017-07-07 08:48  数据结构\图的遍历演示\graph_traverse\graph_traverse\graph_traverse.plg
     文件         613  2019-01-05 21:27  数据结构\图的遍历演示\graph_traverse\graph_traverse\main.cpp
     文件        2208  2019-01-05 21:29  数据结构\图的遍历演示\graph_traverse\graph_traverse\main.o
     文件         263  2019-01-05 21:29  数据结构\图的遍历演示\graph_traverse\graph_traverse\mymain.h
     文件         957  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\queue.cpp
     文件         537  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\queue.h
     文件         963  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\queue.o
     文件         898  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\stack.cpp
     文件         489  2019-01-05 21:29  数据结构\图的遍历演示\graph_traverse\graph_traverse\stack.h
     文件         886  2019-01-05 21:28  数据结构\图的遍历演示\graph_traverse\graph_traverse\stack.o
     目录           0  2020-03-23 16:30  数据结构\实验1\
     目录           0  2020-03-23 16:31  数据结构\实验1\1.1\
     文件        1057  2018-09-24 16:05  数据结构\实验1\1.1\2.cbp
     文件         113  2018-09-24 16:49  数据结构\实验1\1.1\2.depend
     文件         358  2018-09-24 17:00  数据结构\实验1\1.1\2.layout
............此处省略115个文件信息

评论

共有 条评论