树的存储和图的存储结构总结

Posted 肥学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树的存储和图的存储结构总结相关的知识,希望对你有一定的参考价值。

目录标题

#define max_size 100

//双亲表示法
struct Node
	int data;

	int parent;//记录父节点再数组的位置
;

struct Tree 
	Node TreeArr[max_size];
	int n;//节点数
;
//孩子表示法
struct childNode 
	int childIndex;
	childNode* nextChild;
;
struct firstChild 
	int data;
	childNode* FChild;

;
struct Tree 
	firstChild nodes[max_size];
	int n;//节点数
	int root;//根的位置
;
//孩子兄弟表示法
struct ChildBrotherNode 
	int data;
	ChildBrotherNode* firstChild;
	ChildBrotherNode* nextBrother;
;

/*


graph的存储结构


*/

//邻接矩阵法

struct graph 
	char vex[max_size];//定点表
	int edge[max_size][max_size];
	int vernum;//顶点个数和弧的个数
	int arcnum;


;
//邻接表法
struct ArcNode //弧
	int adjvex;//所指向的定点
	ArcNode* next;//下一条弧
;

struct HNode //顶点
	int data;
	ArcNode* firstArc;//指向第一个弧

;

struct graph 
	HNode* vertices[max_size];
	int vernum;
	int arcnum;//弧的个数
;
//十字链表法

struct ArcNode 
	int info;
	int tailvex;//用来存储尾号
	int headvex;//用来存储弧头
	ArcNode* hlink;//弧头相同的下一条弧
	ArcNode* tlink;//弧尾相同的下一条弧
;

struct VerNode
	int data;
	ArcNode* headArc;//指向该节点作为弧头的第一条弧
	ArcNode* tailArc;//指向该节点作为弧尾的第一条弧
;

struct graphList 
	VerNode* VerList[max_size];
	int vernum;//顶点的个数
	int arcnum;//弧的个数
;
//邻接多重表
struct ArcNode 
	int i;//i和j表示两个链接的点的位置
	int j;
	int info;
	ArcNode* iLink;
	ArcNode* jLink;
;

struct verNode

	int data;
	ArcNode* fistEdge;
;

struct graphList 
	verNode* gList[max_size];
	int vernum;
	int arcnum;
;

以上是关于树的存储和图的存储结构总结的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-树&图树和图的性质

图 - 图的存储结构 - 邻接表表示法(一)

数据结构与算法知识大纲

数据结构树---树的存储结构

计算机软考笔记之《数据结构与算法》

数据结构--树