采用链式存储
- typedef struct BiTNode{
- TElemType data;// 数据域
- struct BiTNode *lchild,*rchild;// 左右孩子指针
- }BiTNode,*BiTree;
若需访问父节点, 可如下表示
- typedef struct BiTNode{
- TElemType data;// 数据域
- struct BiTNode *lchild,*rchild;// 左右孩子指针
- struct BiTNode *parent;
- }BiTNode,*BiTree;
以上面左图为例, 用上述结构体存储, 代码如下
- #include
- #include
- #define TElemType int
- typedef struct BiTNode{
- TElemType data;// 数据域
- struct BiTNode *lchild,*rchild;// 左右孩子指针
- }BiTNode,*BiTree;
- void CreateBiTree(BiTree *T){
- *T=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->data=1;
- (*T)->lchild=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->rchild=NULL;
- (*T)->lchild->data=2;
- (*T)->lchild->lchild=(BiTNode*)malloc(sizeof(BiTNode));
- (*T)->lchild->rchild=NULL;
- (*T)->lchild->lchild->data=3;
- (*T)->lchild->lchild->lchild=NULL;
- (*T)->lchild->lchild->rchild=NULL;
- }
- int main() {
- BiTree Tree;
- CreateBiTree(&Tree);
- printf("%d",Tree->lchild->lchild->data);
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2843272.html