判断一个节点是否在一棵二叉树中

来源:互联网 发布:擂台算法自然语言 编辑:程序博客网 时间:2024/06/06 14:24
#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));}
阅读全文
0 0