⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphic.h

📁 校园导游图算法--数据结构中有关图的算法 按v求最短路径 按s求信息; 按q退出; 地图在map图像文件里
💻 H
字号:
#include<iostream.h>
#include<malloc.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define MAX 20
typedef int status;
typedef char *string;
typedef struct{
	string name;
	string info;
}VertexType;
typedef struct{
	int length;
	int ivex,jvex;
}EdgeType;
typedef struct EdgeNode{
	EdgeType elem;
	struct EdgeNode *ilink,*jlink;
}EdgeNode,*EdgePtr;
typedef struct {
	VertexType data;
	EdgePtr firstEdge;
}VNode;
typedef struct{
	VNode Adjmulist[MAX]; 
	int vexNum,edgeNum;
}GraphType;
void InitGraph(GraphType &g)
{
	g.vexNum=g.edgeNum=0;
	for(int i=0;i<MAX;i++) g.Adjmulist[i].firstEdge=NULL;
}
status LocateVex(GraphType &g,string uname,int &i)
{
	for(i=0;i<=g.vexNum;i++)
		if(g.Adjmulist[i].data.name==uname) return TRUE;
	return FALSE;
}
void GetVex(GraphType g,int i,VertexType &v)
{
	v=g.Adjmulist[i].data;
}
EdgePtr FirstEdge(GraphType g,int vi)
{
	return g.Adjmulist[vi].firstEdge;
}
void NextEdge(GraphType g,int vi,EdgePtr p,int &vj,EdgePtr &q)
{
	if(p->elem.ivex==vi)
	{
		q=p->ilink;
		vj=p->elem.jvex;
	}
	else 
	{
		q=p->jlink;
		vj=p->elem.ivex;
	}
}
void InsertVex(GraphType &g,VertexType v)
{
	g.Adjmulist[g.vexNum].data=v;
	g.vexNum++;
}
void InsertEdge(GraphType &g,EdgeType e)
{
	EdgePtr p;
	p=new EdgeNode;
	p->elem=e;
	p->ilink=FirstEdge(g,e.ivex);
	p->jlink=FirstEdge(g,e.jvex);
	g.Adjmulist[e.ivex].firstEdge=g.Adjmulist[e.jvex].firstEdge=p;
	g.edgeNum++;
}
/*void DeleteVex(GraphType &g,VertextType v)
{	
}
/*void DeleteEdge(GraphType &g,EdgeType e)
{
}
*/
void Print_ALGraph(GraphType g)
{
	EdgePtr p;
	cout<<endl<<"graph is:"<<endl;
	for(int i=0;i<g.vexNum;i++)
	{
		cout<<i<<" | "<<g.Adjmulist[i].data.name;
		p=g.Adjmulist[i].firstEdge;
		while(p)
		{
			cout<<p->elem.length<<"ilink -->"<< p->elem.ivex<<"jlink -->"<< p->elem.jvex<<"|" ;
			p=p->ilink;
		}
		cout<<" --> NULL"<<endl;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -