时间:2021-06-07 08:53:58 | 栏目:C代码 | 点击:次
名称:树存储结构的几种表示方法
说明:对于树的存储结构,一般有以下三种表示方法。
总之,选用不同的存储结构要根据具体的用途。(这当然是废话)。想说的是,在做一些题的时候,如果可以不用选用二叉树这种相对复杂的存储结构,那就选择线性的结构。对我来说,线性结构比二维的树的结构用的顺手。
//树的存储结构之双亲表示法 //树的结点定义 typedef struct { int data; //数据元素 int parent; //双亲的位置 }PTNode; //树的类型定义 typedef struct { //PTNode nodes[MAXSIZE]; //双亲表示 int n; //结点数 }PTree; //树的存储结构之孩子表示法 //链表中孩子结点表示 typedef struct CHNode { int pos; //孩子的位置 CHNode *next; //指向下一个孩子的指针 }CHNode; //数组中双亲结点表示 typedef struct CHNode1 { int data; //数据元素 CHNode *firChild; //指向第一个孩子的指针 }CHNode1; //树的类型表示 typedef struct { CHNode1 nodes[MAXSIZE]; //所有的结点 int n; //节点的个数 }CHTree; //树的存储结构之孩子兄弟表示法 typedef struct CSNode { int data; //结点的数据 CSNode *firstchild,*nextbling; //第一个孩子和下一个兄弟 }CSNode,*CSTree;
总结