⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 111.cpp

📁 该程序用先序输入结点值实现二叉树的创建
💻 CPP
字号:
#include "stdio.h"
#include "malloc.h"
#include "time.h"
#define OK 1
#define ERROR 0
clock_t start,stop;
double duration;

typedef int status;

typedef struct BiTNode
{
  char data;
  struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

status visit(char e){
  printf("%c ",e);
  return OK;
};


status CreateBiTree(BiTree &T)
{  //按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树
	char ch;
	scanf("%c",&ch);
    if(ch==' ') T=NULL;
	else
		{
		 if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) printf("OVERFLOW");
		 T->data=ch;
		 CreateBiTree(T->lchild);
         CreateBiTree(T->rchild);
		}
	return OK;
}

status InOrderTraverse(BiTree T,status(* visit)(char e))
{//中序遍历二叉树
	if(T)
		{
			if(InOrderTraverse(T->lchild,visit))
				if(visit(T->data))
					if(InOrderTraverse(T->rchild,visit))  return OK;
			return ERROR;
		}
	else return OK;
}

status main()
{   start=clock();
	BiTree T;
	printf("按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树\n");
	CreateBiTree(T);
	printf("\n中序遍历二叉树的结果\n");
	InOrderTraverse(T,visit);
	stop=clock();
    duration=((double)(stop-start))/CLK_TCK;
	printf("\n%f",duration);
	return OK;
}













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -