intmain(){
BiTree T;char ch, j;int flag =1;
BOOL temp;//--------------------程序解说-----------------printf("本程序实现二叉树的非递归遍历操作。\n");printf("可以实现建立二叉树,非递归先序、中序、后序遍历二叉树\n");//---------------------------------------------printf("请将先序遍历二叉树的结果输入以建立二叉树。\n");printf("对于叶子结点以空格表示。\n");printf("例如:abc de g f (回车),建立如下二叉树:\n");printf(" a \n");printf(" / \n");printf(" b \n");printf(" / \\ \n");printf(" c d \n");printf(" / \\ \n");printf(" e f \n");printf(" \\ \n");printf(" g \n");creatbitree(T);getchar();while(flag){printf("请选择: \n");printf("1.非递归先序遍历\n");printf("2.非递归中序遍历\n");printf("3.非递归后序遍历\n");printf("4.退出程序\n");scanf("%c",&j);getchar();switch(j){case'1':if(T){printf("先序遍历二叉树:");preorder(T);printf("\n");}elseprintf("二叉树为空!\n");break;case'2':if(T){printf("中序遍历二叉树:");inorder(T);printf("\n");}elseprintf("二叉树为空!\n");break;case'3':if(T){printf("后序遍历二叉树");postorder(T);printf("\n");}elseprintf("二叉树为空!\n");break;default:
flag =0;printf("程序运行结束,按任意键结束!\n");}}getch();}
文章目录头文件定义结构体初始化栈//入栈出栈取栈顶元素值判断栈是否为空生成一颗二叉树前序中序后序主函数运行结果头文件#include<dos.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>定义结构体#define MAX 100enum BOOL{False,True};//在后序遍历时指示是否已访问过右子树enum RVISIT{Rchildnovisit,Rchildv