#include <iostream> #include <stdio.h> #include <malloc.h> using namespace std; typedef struct TreeNode { char data; struct TreeNode *left,*right; }*pNode,Node; void CreateTree(pNode &T); ///此处应该用指针的引用 void PreOrderTraverse(pNode &T); void InOrderTraverse(pNode &T); void PostOrderTraverse(pNode &T); int main() { pNode T=NULL; printf("输入A~Z建立二叉树,#代表空\n"); CreateTree(T); printf("先序遍历结果为:"); PreOrderTraverse(T); printf("\n"); printf("中序遍历结果为:"); InOrderTraverse(T); printf("\n"); printf("后序遍历结果为:"); PostOrderTraverse(T); printf("\n"); } void CreateTree(pNode &T) { char ch; if((ch=getchar())=='#') T=NULL; else{ T=(pNode)malloc(sizeof(Node)); T->data=ch; CreateTree(T->left); CreateTree(T->right); } } void PreOrderTraverse(pNode &T) { if(T){ printf("%c",(T)->data); PreOrderTraverse(T->left); PreOrderTraverse(T->right); } } void InOrderTraverse(pNode &T) { if(T){ InOrderTraverse(T->left); printf("%c",T->data); InOrderTraverse(T->right); } } void PostOrderTraverse(pNode &T) { if(T){ PostOrderTraverse(T->left); PostOrderTraverse(T->right); printf("%c",T->data); } }
二叉树的建立与先序、中序、后序遍历
猜你喜欢
转载自www.cnblogs.com/ACPIE-liusiqi/p/9052456.html
今日推荐
周排行