二叉树建立,前序遍历,中序遍历,后序遍历 思路

来源:互联网 发布:新数网络 编辑:程序博客网 时间:2024/06/03 09:26
#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct BiTNode{char data;struct BitNode *lchild, *rchild;}BiTnode,*BiTree;//创建一颗二叉树,约定用户用前序遍历的方式输入数据CreateBiTree(BiTree *T){char c;scanf("%c",c);if(' ' ==c){*T = NULL;}else{*T =(BitNode *)malloc(sizeof(BiTNode));(*T)->data = c;CreateBiTree(&(*T)->lchild);CreateBiTree(&(*T)->rchild);}}//访问二叉树结点的具体操作,逆向干嘛!visit(char c, in level){printf("%c 位于第%d层\n", c, level);}//遍历二叉树,前序遍历PreOrderTraverse(BiTree T,int level){if(T){visit(T->data,level);PreOrderTraverse(T->lchild,level+1);PreOrderTraverse(T->rchild,level+1);}}//中序遍历PreOrderTraverse(BiTree T,int level){if(T){PreOrderTraverse(T->lchild,level+1);visit(T->data,level);PreOrderTraverse(T->rchild,level+1);}}//后序遍历PreOrderTraverse(BiTree T,int level){if(T){PreOrderTraverse(T->lchild,level+1);PreOrderTraverse(T->rchild,level+1);visit(T->data,level);}}int main(){int level = 1;BiTree T = NULL;CreatBiTree(&T);PreOrderTraverse(T,level);return 0;}

0 0
原创粉丝点击