输出二叉树中所有从根结点到叶子结点的路径
Posted 比不了就不比
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出二叉树中所有从根结点到叶子结点的路径相关的知识,希望对你有一定的参考价值。
// 输出二叉树中所有从根结点到叶子结点的路径.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
struct BTNode
char m_value;
BTNode *m_left;
BTNode *m_right;
;
//先序创建二叉树
void CreatBTree(BTNode *&root)
char nValue = 0;
cin >> nValue;
if ('#' == nValue)
return;
else
root = new BTNode();
root->m_value = nValue;
CreatBTree(root->m_left);
CreatBTree(root->m_right);
//输出二叉树中所有从根结点到叶子结点的路径(递归)
void FindAllPath(BTNode *pRoot, vector<char> path)
if (pRoot != NULL)
path.push_back(pRoot->m_value);
if (pRoot->m_left == NULL && pRoot->m_right == NULL)
for (vector<char>::iterator iter=path.begin(); iter!=path.end(); iter++)
cout << *iter << " ";
cout << endl;
return;
else
FindAllPath(pRoot->m_left, path);
FindAllPath(pRoot->m_right, path);
int _tmain(int argc, _TCHAR* argv[])
BTNode *pRoot = NULL;
vector<char> path;
CreatBTree(pRoot);
cout << "二叉树中从根到叶子结点的所有路径如下:" << endl;
FindAllPath(pRoot, path);
system("pause");
return 0;
以上是关于输出二叉树中所有从根结点到叶子结点的路径的主要内容,如果未能解决你的问题,请参考以下文章