【数据结构】树的三种表示法
程序员文章站
2024-02-02 19:36:04
...
包含:双亲表示法,孩子表示法,孩子兄弟表示法,链式表示。
双亲表示法:
#include<iostream>
#define Maxsize 100
using namespace std;
typedef char ElemType;
//树的结点定义
typedef struct TNode{
ElemType data;
int parent;
}TNode;
//树的定义//
typedef struct{
TNode nodes[Maxsize];
int n;//结点的数量//
}Tree;
孩子表示法:
#include<iostream>
#define Maxsize 100
using namespace std;
typedef char ElemType;
//孩子结点的定义
typedef struct CNode{
int child; //在表中的数组的下表//
struct CNode *next; //这个是一个结构
}CNode , *Child;
//树的所有数据表
typedef struct{
ElemType data;
Child firstchild; // 指向的第一个孩子的数据 //
}TNode;
//树的定义//
typedef struct{
TNode nodes[Maxsize];
int n;//结点的数量//
}Tree;
孩子兄弟表示法:树变二叉树
#include<iostream>
#define Maxsize 100
using namespace std;
typedef char ElemType;
//孩子结点的定义
typedef struct CSNode{
ElemType data;
struct CNode *firstchild , *rightbro; //左手孩子,右手兄弟
}CSNode;
树的链式表示:
#include<iostream>
#define Maxsize 100
using namespace std;
typedef char ElemType;
typedef struct BTNode{
ElemType data;
struct BiTNode *lchild , *rchild;
}BitNode , *BiTree;