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

📄 4.cpp

📁 都是以前随手编写的笑程序:总的来说只有五个<回文游戏,层次遍历二叉树,猴子选大王,先序、中序、后序遍历的递归算法等等> 如果对你又帮助你就下来看看吧
💻 CPP
字号:
//4.先序、中序、后序遍历的递归算法
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
   typedef struct BTNode
   {char data;
	BTNode *lchild,*rchild;
   }* BTree;

   int CreateBTree(BTree &BT)
   {//以先序次序输入二叉树中结点的值,
	  char ch=' ';   scanf("%c",&ch);
	  if(ch==' ') BT=NULL;
	  else
	  { if(!(BT=(BTNode *)malloc(sizeof(BTNode))))return 0;
		BT->data=ch;
		CreateBTree(BT->lchild);
		CreateBTree(BT->rchild);
	  }return 1;
   }
   int xianTraverse(BTree BT)
   {//先序遍历二叉树,显示先序序列;
	if(BT)
	{   cout<<BT->data<<' ';
	 	if(xianTraverse(BT->lchild))
	    if(xianTraverse(BT->rchild)) return 1;
		return 0;
	}return 1;
   }
   int midTraverse(BTree BT)
   {//中序遍历二叉树,显示中序序列;
	 if(BT)
	 {  if(midTraverse(BT->lchild))
		{   cout<<BT->data<<' ';
			if(midTraverse(BT->rchild))return 1;
		}else return 0;
	}
	return 1;
   }


   int houTraverse(BTree BT)
   {//后序遍历二叉树,显示后序序列;
     if(BT)
	 {   if(houTraverse(BT->lchild))
		if(houTraverse(BT->rchild))
		{cout<<BT->data<<' '; return 1;}
		else return 0;
	 }return 1;
   }

void main(){
	BTree T=NULL;
	cout<<"输入二叉树的先序扩展序列:"<<endl;
	if(!CreateBTree(T))  cout<<"建树出错!"<<endl;
	cout<<"二叉树的先序序列为:"<<endl;
	xianTraverse(T); cout<<"\t"<<endl; 
	cout<<"二叉树的中序序列为:"<<endl;
	midTraverse(T);  cout<<"\t"<<endl;   
	cout<<"二叉树的后序序列为:"<<endl;
	houTraverse(T);  cout<<"\n"<<endl;
}
//输入为  abc@d@@efg@@@@@@@(@表示空格)
//输出为  T的先序序列abcdefg
//        T的中序序列cdbgfea
//        T的后序序列dcgfeba

⌨️ 快捷键说明

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