数据结构之二叉树(一)
设计和编写程序,按照输入的遍历要求(即先序、中序和后序)完成对二叉树的遍历,并输出相应遍历条件下的树结点序列。
1 //递归实现 2 #include<iostream> 3 #include<string> 4 using namespace std; 5 6 typedef struct BiTNode{ 7 char data; 8 struct BiTNode *lchild,*rchild; 9 }BiTNode,*BiTree; 10 11 void InitBiTree(BiTree &T)//构造空二叉树 12 { 13 T=NULL; 14 } 15 void CreateBiTree(BiTree &T)//生成二叉树 16 { 17 char ch; 18 cin>>ch; 19 if(ch=='0')//0代表空 20 T=NULL; 21 else 22 { 23 T=(BiTree)malloc(sizeof(BiTNode));//生成根结点 24 if(!T) 25 { 26 cout<<"生成结点错误!"<<endl; 27 return; 28 } 29 T->data=ch; 30 CreateBiTree(T->lchild); 31 CreateBiTree(T->rchild); 32 } 33 } 34 35 void PreOrder(BiTree T)//先序递归遍历 36 { 37 if(T!=NULL) 38 { 39 cout<<T->data<<" "; 40 PreOrder(T->lchild); 41 PreOrder(T->rchild); 42 } 43 } 44 45 void InOrder(BiTree T)//中序递归遍历 46 { 47 if(T!=NULL) 48 { 49 InOrder(T->lchild); 50 cout<<T->data<<" "; 51 InOrder(T->rchild); 52 } 53 } 54 55 void PostOrder(BiTree T)//后序递归遍历 56 { 57 if(T!=NULL) 58 { 59 PostOrder(T->lchild); 60 PostOrder(T->rchild); 61 cout<<T->data<<" "; 62 } 63 } 64 int main() 65 { 66 BiTree T; 67 InitBiTree(T); 68 cout<<"请输入二叉树结点"<<endl; 69 CreateBiTree(T); 70 string str=""; 71 cout<<"请输入遍历要求(先序,中序,后序)"; 72 cin>>str; 73 if(str=="先序") 74 { 75 cout<<endl<<"先序递归遍历树"<<endl; 76 PreOrder(T); 77 } 78 else if(str=="中序") 79 { 80 cout<<endl<<"中序递归遍历树"<<endl; 81 InOrder(T); 82 } 83 else if(str=="后序") 84 { 85 cout<<endl<<"后序递归遍历树"<<endl; 86 PostOrder(T); 87 } 88 cout<<endl; 89 system("pause"); 90 return 0; 91 }
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/6131171.html
欢迎邮件交流:zhuanxinxin@aliyun.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人