操作步骤:
1、写出二叉树结构体的定义
(包括:数据域与左右孩子指针域)
2、输入字符
• 如果输入为# 二叉树结构体指针为NULL
• 反之 开辟二叉链表节点空间并输入字符并调用该函数分别以左右孩子指针为实参(类似于二叉树的先序递归遍历),重复步骤2
——》简而言之,步骤2的目的在于判断二叉树结构体指针的指向或为NULL或为链表节点空间
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;//二叉树的结构体定义
void Creat_BiTree(BiTree&T)//---->C语言没有引用哦
{
char ch;
scanf("%c",&ch);
getchar();
if(ch=='#')
T=NULL;
else
{T=(BiTree)malloc(sizeof(BiTNode));
T->data=ch;
Creat_BiTree(T->lchild);
Creat_BiTree(T->rchild);
}
}/二叉树的建立
void preorder(BiTree T)
{
if(T!=NULL)
{
printf("%c",T->data);
preorder(T->lchild);
preorder(T->rchild);
}
}/先序遍历输出
int main()
{
BiTree T;
Creat_BiTree(T);
preorder(T);
}
口诀:(二叉树如何建,指针指向要确定)