/*************************************************************************
File Name: bitree.cpp
Author: yubo
Mail: yuzibode@126.com
Created Time: 2014年04月27日 星期日 23时45分04秒
学习重点:结点的定义,使之称为类型,作为形参的类型传递;递归的理解;
************************************************************************/
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
//定义结点
typedef struct BiNode{
char data;
struct BiNode *lch;
struct BiNode *rch;
}BiNode,*Bitree;//*Bitree相当于一个自定义的数据类型了
//先序建立二叉树,一定要以正则二叉树的形式写入数据,虚结点用#代替
void Create(Bitree &T)
{
T=(BiNode*) malloc (sizeof(BiNode));
printf("Enter the data \n");
scanf(" %c",&T->data);
if(T->data=='#') T=NULL;
if(T){
printf("");
Create(T->lch);
Create(T->rch);
}
}
//先序遍历(递归)
void PreOrder(Bitree T)//为什么是他了
{
if(T){
printf(" %c",T->data);
PreOrder(T->lch);
PreOrder(T->rch);
}
}
//中序遍历
void InOrder(Bitree T)
{
if(T){
InOrder(T->lch);
printf(" %c",T->data);
InOrder(T->rch);
}
}
//后续遍历
void PostOrder(Bitree T)
{
if(T){
PostOrder(T->lch);
PostOrder(T->rch);
printf(" %c",T->data);
}
}
int main()
{
printf("建树了\n");//输入的时候一定要想插图中那样才行
Bitree T;
Create(T);
printf("\n先序遍历\n");
PreOrder(T);
printf("\n中序遍历\n");
InOrder(T);
printf("\n后序遍历\n");
PostOrder(T);
}
二叉树的链表实现(递归)
最新推荐文章于 2022-04-19 17:53:55 发布