c语言实现十字链表储存有向图(《数据结构》算法7.3)

用c语言实现《数据结构》算法7.3的十字链表储存有向图。

代码如下:

#include
#define MAX_VERTEX_NUM 20
#include
typedef struct ArcBox{//弧的结构体变量 
	int tailvex,headvex;//弧尾和弧头的位置,跟输入顺序有关 
	struct ArcBox *hlink,*tlink;//分别指向弧头和该弧相同,弧尾和该弧相同的弧 
}ArcBox;
typedef struct VexNode{
	int data;//结点的值 
	ArcBox *firstin,*firstout;//分别指向该顶点第一条入弧和出弧
}VexNode;
typedef struct{
	VexNode xlist[MAX_VERTEX_NUM];//表头向量 
	int vexnum,arcnum;//结点数和弧数 
}OLGraph;
int LocateVex(OLGraph G,int v){//找到该结点的位置 
	for(int i=0;itailvex=i;p->headvex=j;//对弧赋值 
		p->hlink=G.xlist[j].firstin;
		p->tlink=G.xlist[i].firstout;
		G.xlist[j].firstin=G.xlist[i].firstout=p;//对顶点赋值 
	} 
}
int main(){
	OLGraph G; 
	CreateDG(G);
	return 0;
}

你可能感兴趣的:(数据结构)