博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构#前序遍历建立二叉树 输出中序遍历
阅读量:4325 次
发布时间:2019-06-06

本文共 2044 字,大约阅读时间需要 6 分钟。

栈存储

1.利用递归前序遍历创建二叉树,利用栈存储的方式,中序遍历二叉树并输出。

1 #include
2 using namespace std; 3 #include
4 #include
5 6 typedef struct BiTNode{ 7 char data; 8 struct BiTNode *lchild,*rchild; 9 }BiTNode,*BiTree;10 11 typedef struct{12 BiTree *base;13 BiTree *top;14 int stacksize;15 }SqStack;16 17 void creat(BiTree &T){18 char ch;19 cin>>ch;20 T=(BiTree )malloc(sizeof(BiTNode));21 22 if(ch=='#')T=NULL;23 else{24 T->data=ch;25 creat(T->lchild);26 creat(T->rchild);27 }28 29 }30 31 32 void InitStack(SqStack &S){33 S.base=S.top=(BiTree *)malloc(100*sizeof(BiTree));34 S.stacksize=100;35 }36 void Push(SqStack &S,BiTree T){37 38 *S.top++=T;39 40 }41 void Pop(SqStack &S,BiTree &T){42 if(S.top!=S.base)43 T=*--S.top;44 }45 void GetPop(SqStack &S,BiTree &e){46 e=*(S.top-1);47 }48 49 void Inoder(BiTree T){50 BiTree p;51 SqStack S;52 InitStack(S);53 Push(S,T);54 while(S.base!=S.top){55 GetPop(S,p);56 while(p){57 Push(S,p->lchild);58 GetPop(S,p);59 60 }61 Pop(S,p);62 if(S.base!=S.top){63 Pop(S,p);64 cout<
data;65 Push(S,p->rchild);66 67 }68 }69 cout<

 

 

运行截图:输入树,叶子节点以#结束

 

二 递归遍历

此外,利用递归的方式对二叉树,进行前序中序和后序遍历

 

2.使用递归的前序遍历,中序遍历代码。void PreOrder(BinTree T)//前序遍历二叉树  {      if(T!=NULL)      {          cout<
data; PreOrder(T->lchild); PreOrder(T->rchild); } } void InOrder(BinTree T)//中序遍历二叉树 { if(T!=NULL) { InOrder(T->lchild); cout<
data; InOrder(T->rchild); } } void PostOrder(BinTree T)//后序遍历二叉树 { if(T!=NULL) { PostOrder(T->lchild); PostOrder(T->rchild); cout<
data; } }

 

转载于:https://www.cnblogs.com/yitou13/p/8320062.html

你可能感兴趣的文章
阶段3 3.SpringMVC·_03.SpringMVC常用注解_6 CookieValue注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_7 ModelAttribute注解
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_1 搭建环境
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_8 SessionAttributes注解
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_3 响应之返回值是void类型...
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型...
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_4 响应之返回值是ModelAndView类型...
查看>>
阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_01.SpringMVC概述及入门案例
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_6 响应json数据之过滤静态资源...
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_5 响应之使用forward和redirect进行页面跳转...
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
查看>>
阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_7 响应json数据之发送ajax的请求...
查看>>
阶段3 3.SpringMVC·_05.文件上传_2 文件上传之传统方式上传代码回顾
查看>>
阶段3 3.SpringMVC·_05.文件上传_1 文件上传之上传原理分析和搭建环境
查看>>
阶段3 3.SpringMVC·_05.文件上传_4 文件上传之Springmvc方式上传代码
查看>>
阶段3 3.SpringMVC·_05.文件上传_3 文件上传之Springmvc方式上传原理分析
查看>>
阶段3 3.SpringMVC·_05.文件上传_6 文件上传之跨服务器上传代码
查看>>
阶段3 3.SpringMVC·_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境
查看>>
阶段3 3.SpringMVC·_06.异常处理及拦截器_1 SpringMVC异常处理之分析和搭建环境
查看>>