树的存储和图的存储结构总结
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;
;
以上是关于树的存储和图的存储结构总结的主要内容,如果未能解决你的问题,请参考以下文章