• 大小: 1.6 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-03
  • 语言: 其他
  • 标签: 数据结构  

资源简介

图的邻接矩阵存储和邻接表存储 代码完整 有注释

资源截图

代码片段和文件信息

#include 
#include 
#define MAXVEX 100
typedef char VertexType[3];
typedef struct edgenode
{
int adjvex;       /*邻接点序号*/
int value;   /*边的权值*/
struct edgenode *next; /*下一条边的顶点*/
} ArcNode; /*每个顶点建立的单链表中结点的类型*/
typedef struct vexnode
{
VertexType data;        /*结点信息*/
ArcNode *firstarc;  /*指向第一条边结点*/
} VHeadNode; /*单链表的头结点类型*/
typedef struct 
{
int ne; /*n为实际顶点数e为实际边数*/
VHeadNode adjlist[MAXVEX]; /*单链表头结点数组*/
} AdjList;  /*图的邻接表类型*/
int CreateAdjList(AdjList *&G) /*建立有向图的邻接表*/
{
int ibtw;
ArcNode *p;
G=(AdjList *)malloc(sizeof(AdjList));
printf(“顶点数(n)边数(e):“);
scanf(“%d%d“&G->n&G->e);
for (i=0;in;i++)
{
printf(“   序号为%d的顶点信息:“ i);
scanf(“%s“G->adjlist[i].data);
G->adjlist[i].firstarc=NULL;
}
for (i=0;ie;i++)
{
printf(“   序号为边=>“i);
printf(“ 起点号 终点号 权值:“);
scanf(“%d%d%d“&b&t&w);
if (bn && tn && w>0)
{
p=(ArcNode *)malloc(sizeof(ArcNode)); /*建立*p结点*/
p->value=w;p->adjvex=t;
p->next=G->adjlist[b].firstarc;  /**p插入到adjlist[b]的单链表之首*/
G->adjlist[b].firstarc=p;
}
else
{
printf(“输入错误!\n“);
return(0);
}
}
return(1);
}
void DispAdjList(AdjList *G)
{
int i;
ArcNode *p;
printf(“图的邻接表表示如下:\n“);
for (i=0;in;i++)
{
printf(“  [%d%3s]=>“iG->adjlist[i].data);
p=G->adjlist[i].firstarc;
while (p!=NULL)
{
printf(“(%d%d)->“p->adjvexp->value);
p=p->next;
}
printf(“∧\n“);
}
}
void main()
{
AdjList *G;
CreateAdjList(G);
DispAdjList(G);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1249  2006-07-16 15:01  creatematix.cpp

     文件       1732  2006-09-07 14:25  createadjlist.cpp

----------- ---------  ---------- -----  ----

                 2981                    2


评论

共有 条评论

相关资源