首页 > 代码库 > 二叉树的创建和遍历
二叉树的创建和遍历
以这颗树为例:#表示空节点
前序遍历(根->左->右)为:ABD##E##C#F##
中序遍历(左->根->右)为:#D#B#E#A#C#F#
后序遍历(左->右->根)为:##D##EB###FCA
#include <stdio.h>#include <stdlib.h>typedef char TElemType;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;void ForEachTree(BiTree T){ if(T == NULL){ return; }// printf(" %c ",T->data);前序遍历 ForEachTree(T->lchild); printf(" %c ",T->data);//中序遍历 ForEachTree(T->rchild);// printf(" %c ",T->data);后序遍历}void CreateBiTree(BiTree *T){ TElemType ch; scanf("%c",&ch); if(‘#‘ == ch){ *T = NULL; }else{ *T = (BiTree)malloc(sizeof(BiTNode)); (*T)->data =http://www.mamicode.com/ ch; CreateBiTree(&(*T)->lchild); CreateBiTree(&(*T)->rchild); }}void main(){ //前序创建树,中序输出树 BiTree T;//根节点 CreateBiTree(&T); ForEachTree(T);}
二叉树的创建和遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。