数据结构之非线性结构:树、图

一、非线性结构

数据结构形式是线性结构和非线性结构,非线性结构的数据结构关系是数据间关系是一对多,或者多对多的关系。下面我将介绍,数据结构中非线性结构:树和图。

二、树

树是一种一对多的数据结构关系,其是由一个根节点通过指针指向多个节点之间的数据结构。其中构成有最大层这样的子节点,称之为深度。一个节点有最多的后继节点数据节点称之为最大度数。

typedef struet TreeNode{
ElemType data; //数据域
struct TreeNode *next1, *next2....; 
}TreeNode,*Tree;

三、图

图G由顶点集V和边集E组成, 记为G= (V,E), 其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若V= {v1, V2,···, Vn }, 则用I V1表示图G中顶点的个数,也称图G的阶, E = {(u, v) I uEV, vEV}, 用心表示图G中边的条数。图是多对多的数据结构形式。

//图的邻接表表示
#define MaxVertexNum 100
typedef struct ArcNode{
int adjvex;
struct ArcNode *next;
}ArcNode;
typedef struet VNode{
VertexType data;
ArcNode *first;
}VNode,AdjList[MaxVertexNum];

typedef struet{
AdjList vertices;
int vexnum,arcnum;
} ALGraph

你可能感兴趣的:(数据结构,数据结构,图论,树堆)