数据结构之二叉树(二)
输出二叉树中所有从根结点到叶子结点的路径
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 struct BiTNode 6 { 7 char m_value; 8 BiTNode *m_left; 9 BiTNode *m_right; 10 }; 11 12 //先序创建二叉树 13 void CreatBiTree(BiTNode *&root) 14 { 15 char nValue = 0; 16 cin >> nValue; 17 if ('#' == nValue) 18 { 19 return; 20 } 21 else 22 { 23 root = new BiTNode(); 24 root->m_value = nValue; 25 CreatBiTree(root->m_left); 26 CreatBiTree(root->m_right); 27 } 28 } 29 30 //输出二叉树中所有从根结点到叶子结点的路径(递归) 31 void FindAllPath(BiTNode *pRoot, vector<char> path) 32 { 33 if (pRoot != NULL) 34 { 35 path.push_back(pRoot->m_value); 36 if (pRoot->m_left == NULL && pRoot->m_right == NULL) 37 { 38 for (vector<char>::iterator iter=path.begin(); iter!=path.end(); iter++) 39 { 40 cout << *iter << " "; 41 } 42 cout << endl; 43 return; 44 } 45 else 46 { 47 FindAllPath(pRoot->m_left, path); 48 FindAllPath(pRoot->m_right, path); 49 } 50 } 51 } 52 53 int main() 54 { 55 BiTNode *pRoot = NULL; 56 vector<char> path; 57 CreatBiTree(pRoot); 58 cout << "二叉树中从根到叶子结点的所有路径如下:" << endl; 59 FindAllPath(pRoot, path); 60 system("pause"); 61 return 0; 62 }
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/6127671.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训练数据并当服务器共享给他人