一、二叉树的二叉链表存储表示
//二叉树的二叉链表存储表示
typedef struct BiTNode
{
ElemType data;//结点的数据域
struct BiTNode *lchild, *rchild;//左右孩子指针
} BiTNode,*BiTree;
二、先序遍历的顺序创建二叉链表
算法步骤:
(1)扫描字符序列,读入字符ch
(2) 如果‘ch’是一个‘#’字符,则表明该二叉树为空树,即T为NULL;否则执行以下操作:
1)申请一个结点空间T;
2)将ch赋给T->data;
3)递归创建T的左子树;
4)递归创建递归的右子树;
void CreateBiTree(BiTree &T)
{
//创建二叉链表表示的二叉树T
char ch;
cin>>ch;
if(ch == '#')
{
T = NULL;
}
else
{
T = new BiTNode;//生成根结点
T->data = ch;//根结点的数据域置为ch
CreateBiTree(T->lchild);//递归创建左子树
CreateBiTree(T->rchild);//递归创建右子树
}
}
三、遍历二叉树
(1)先序遍历
//先序遍历二叉树
void PreOrderTraverse(const BiTree &T)
{
if(T == NULL)
{
return;
}
else

最低0.47元/天 解锁文章

672





