您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > c语言构造树及树的三种遍历
#includestdio.h#includestdlib.h#includestring.h#includemalloc.h#defineerror0#defineok1typedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;intCreateBiTree(BiTree&T){charch;scanf(%c,&ch);if(ch=='#')T=NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(error);T-data=ch;CreateBiTree(T-lchild);CreateBiTree(T-rchild);}returnok;}voidPreOrderBiTree(BiTreeT){if(T){printf(%c,T-data);PreOrderBiTree(T-lchild);PreOrderBiTree(T-rchild);}}voidInOrderBiTree(BiTreeT){if(T){InOrderBiTree(T-lchild);//中序遍历左子树printf(%c,T-data);//访问结点InOrderBiTree(T-rchild);//中序遍历右子树}}voidPostOrderBiTree(BiTreeT){if(T){PostOrderBiTree(T-lchild);PostOrderBiTree(T-rchild);printf(%c,T-data);}}main(){inti;BiTreeT;printf(\t请输入树的各元素:\n\t);CreateBiTree(T);do{printf(/*****************************/\n);printf(\t1键:先序输出;\n\t2键:中序输出;\n\t3键:后序输出!\n\t0键:退出程序!\n);printf(\t请输入你的选择:\n\t);scanf(%d,&i);switch(i){case1:printf(\n\t你选择的是先序输出!!\n);printf(\n\t输出结果为:\n);printf(\t);PreOrderBiTree(T);break;case2:printf(\n\t你选择的是中序输出!!\n);printf(\n\t输出结果为:\n);printf(\t);InOrderBiTree(T);break;case3:printf(\n\t你选择的是后序输出!!\n);printf(\n\t输出结果为:\n);printf(\t);PostOrderBiTree(T);break;}printf(\n);}while(i!=0);}
本文标题:c语言构造树及树的三种遍历
链接地址:https://www.777doc.com/doc-6086998 .html