标签:二叉树
/************************************************************************* 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); }
标签:二叉树
原文地址:http://blog.csdn.net/yuzibo747/article/details/24599005