#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//结点
template <typename T>
struct TreeNode
{
T _data;
TreeNode *_left;
TreeNode *_right;
TreeNode(const T& data)
:_data(data)
,_left(NULL)
,_right(NULL)
{}
};
//创建二叉树
template<typename T>
void CreateBinaryTree(TreeNode<T>*& root, char*& str)
{
if (*str != '#' && *str != '\0')
{
root = new TreeNode<T>(*str);
CreateBinaryTree(root->_left, ++str);
CreateBinaryTree(root->_right, ++str);
}
}
//判断结点是否在一颗二叉树中
template <typename T>
bool IsNodeOfTree(const TreeNode<T>* root, const TreeNode<T>* node)
{
if (NULL==root || NULL==node)
return false;
if (root == node) //如果是要判断是否有相同的值 改成 if(root->_data == node->_data);
return true;
return(IsNodeOfTree(root->_left, node) || IsNodeOfTree(root->_right, node));
}
判断一个节点是否在一棵二叉树中
最新推荐文章于 2020-12-06 21:10:03 发布