5.2.2二叉树的存储结构


#define MaxSize 100
struct TreeNode{
ElemType value;//结点中的数据元素
bool isEmpty;//结点是否为空
};
TreeNode t [MaxSize];





//二叉树的结点(链式存储)
typedef struct BiTNode{
Elemtype data;// 数据域
struct BitNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BitTree;

struct ElemType{
int value;
};
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//定义一颗空树
BiTree root = NULL;
root = (BiTree)malloc(sizeof(BiTNode));
root->data={1};
root->lchild=NULL;
root->rchild=NULL;
//插入新结点
BiTNode * p=(BiTNode *)malloc(sizeof(BiTNode));
p->data = {2};
p->lchild = NULL;
p->rchild = NULL;
root->lchild = p;//作为根节点的左孩子
#include <stdio.h>
#include <stdlib.h> // malloc、free 必须头文件
struct ElemType{
int value;
};
typedef struct BiTNode{
struct ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int main()
{
// 定义空树根节点
BiTree root = NULL;
// 创建根节点
root = (BiTree)malloc(sizeof(BiTNode));
// 正确赋值方式
root->data.value = 1;
root->lchild = NULL;
root->rchild = NULL;
// 插入左孩子结点
BiTNode *p = (BiTNode *)malloc(sizeof(BiTNode));
p->data.value = 2;
p->lchild = NULL;
p->rchild = NULL;
root->lchild = p;
return 0;
}

//二叉树的结点(链式存储)
typedef struct BiTNode{
ElemType data;// 数据与
struct BitNode *lchile,*rchild;//左右孩子指针
struct BitNode *parent;//父节点指针
}BiTNode,*BiTree;

