数据结构之树的遍历
来源:互联网 发布:手机运行windows 编辑:程序博客网 时间:2024/05/17 09:25
二叉树的递归先序遍历
二叉树的非递归中序遍历
二叉树的非递归层次序遍历
////by coolxxx//#include<bits/stdc++.h>#include<iostream>#include<algorithm>#include<string>#include<iomanip>#include<map>#include<stack>#include<queue>#include<set>#include<bitset>#include<memory.h>#include<time.h>#include<stdio.h>#include<stdlib.h>#include<string.h>//#include<stdbool.h>#include<math.h>#pragma comment(linker,"/STACK:1024000000,1024000000")#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))#define abs(a) ((a)>0?(a):(-(a)))#define lowbit(a) (a&(-a))#define sqr(a) ((a)*(a))#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))#define mem(a,b) memset(a,b,sizeof(a))#define eps (1e-8)#define J 10000#define mod 2147493647#define MAX 0x7f7f7f7f#define PI 3.14159265358979323#define N 264using namespace std;typedef long long LL;double anss;LL aans;int cas,cass;int n,m,lll,ans;const int OK=1,ERROR=0,INFEASIBLE=-1;typedef int Status;typedef char Elemtype;typedef struct BiTNode{Elemtype data;BiTNode *lchild,*rchild;}BiTNode,*BiTree;Status CreateBiTree(BiTree &T)//递归的建立一棵二叉树 输入为二叉树的先序序列 #表示空树{char ch;ch=getchar();if(ch=='#')T=NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);T->data=ch;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}return OK;}//CreateBiTreeStatus DestroyBiTree(BiTree &T){if(T){DestroyBiTree(T->lchild);DestroyBiTree(T->rchild);free(T);T=NULL;}}//DestroyBiTreeStatus PreOrderTraverse(BiTree T)//按照前序递归遍历二叉树{if(T){cout<<T->data<<" ";PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);}return OK;}//PreOrderTraverseStatus InOrderTraverse(BiTree T)//按照中序非递归遍历二叉树{stack<BiTree>S;BiTree p=T;while(p || !S.empty()){if(p){S.push(p);p=p->lchild;}else{p=S.top();S.pop();cout<<p->data<<" ";p=p->rchild;}}return OK;}//InOrderTraverseStatus LevelOrderTraverse(BiTree T)//照层次序非递归遍历二叉树{queue<BiTree>Q;BiTree p;Q.push(T);while(!Q.empty()){p=Q.front();Q.pop();cout<<p->data<<" ";if(p->lchild)Q.push(p->lchild);if(p->rchild)Q.push(p->rchild);}return OK;}//LevelOrderTraverseint main(){#ifndef ONLINE_JUDGEfreopen("1.txt","r",stdin);//freopen("2.txt","w",stdout);#endifint i,j,k;int x,y,z;//init();//for(scanf("%d",&cass);cass;cass--)//for(scanf("%d",&cas),cass=1;cass<=cas;cass++)//while(~scanf("%s",s))//while(~scanf("%d%d",&n,&m)){BiTree T;CreateBiTree(T);PreOrderTraverse(T);puts("");InOrderTraverse(T);puts("");LevelOrderTraverse(T);puts("");DestroyBiTree(T);}return 0;}/*////*/
0 0
- 数据结构之树的遍历
- 数据结构之树的遍历
- 数据结构之树的遍历
- 数据结构之二叉树的遍历汇总
- java数据结构之二叉树的遍历
- 数据结构之二叉树的遍历
- 数据结构之二叉树的遍历
- 数据结构实验之二叉树的遍历
- 数据结构进阶(三)数据结构之树的遍历
- 数据结构之图的遍历
- 数据结构之图的遍历
- 数据结构之图的遍历
- 数据结构之二叉树遍历
- 数据结构之二叉树遍历
- 数据结构之树和二叉树---二叉树的遍历
- 数据结构实验之二叉树的建立与遍历
- 数据结构之二叉树的递归创建、递归遍历
- 数据结构之二叉树的非递归遍历
- beego 访问静态文件映射
- Linux下Tomcat的启动、关闭、杀死进程
- 一. play绪论
- composer安装laravel phpmailer smarty
- http头中的host字段详解
- 数据结构之树的遍历
- iOS 多线程编程<十六、RunLoop的基本应用>
- android 动态显示状态栏和导航栏
- 寡谈自动化测试(Selenium)
- 解决 ORA-21561: OID generation failed
- 解决Android拍照保存在系统相册不显示的问题
- [有奖活动]51Testing2016软件测试现状调查活动!
- ORACLE的order by中文排序
- sqlite3命令大全