二叉链法
三叉链法
双清链表示法
#include<iostream> #include<string.h> //二叉链表示法 typedef struct BiTNode { int data; BiTNode *lchild, *rchild; }; typedef struct BiTNode* Bitree; //三叉链表示法 typedef struct TriTNode { int data; TriTNode *lchild, *rchild; TriTNode *parent; }; typedef struct TriTNode * TriTree; //双亲链表示法 typedef struct BPTNode { int data; int parentPosition;//指向双亲的指针 //数组下标 char LRTag;//左右孩子标识域 }; typedef struct BPTree { BPTNode nodes[100];//因为结点之间是分数的,需要吧结点存储到数组中 int num_node;//结点数目 int root;//根节点的位置//注意此域存储的是父亲结点在数组的下标 }; //用这个数据结构能表达出一棵树。。。 void main() { BiTNode t1, t2, t3, t4, t5; t1.data = 1; t2.data = 2; t3.data = 3; t4.data = 4; t5.data = 5; t1.lchild = &t2; t1.rchild = &t3; t2.lchild = &t4; t3.lchild = &t5; BiTNode *p1, *p2, *p3, *p4, *p5; p1 = (BiTNode*)malloc(sizeof(BiTNode)); p2 = (BiTNode*)malloc(sizeof(BiTNode)); p3 = (BiTNode*)malloc(sizeof(BiTNode)); p4 = (BiTNode*)malloc(sizeof(BiTNode)); p5 = (BiTNode*)malloc(sizeof(BiTNode)); p1->data = 1; p2->data = 2; p3->data = 3; p4->data = 4; p5->data = 5; p1->lchild =p2; p1->rchild = p3; p2->lchild = p4; p3->lchild = p5; }