点击查看代码
#include<iostream>
using namespace std;
struct Node {
int data;
Node *left, *right;//注意声明格式
};
Node* newNode(int x)
{
Node* temp = new Node;
temp->data = x;
temp->left = temp->right = NULL;
return temp;
}
void insert(Node*& travptr, int data) {//Node*& travptr 表示 travptr 是一个引用,引用的是一个指向 Node 类型的指针
if (travptr == NULL)
{
travptr = newNode(data);
return;
}
(data > travptr->data) ? insert(travptr->right, data) : insert(travptr->left, data);
}
bool search(Node* travptr, int x) {
if (travptr == NULL)
{
return false;
}
if (x == travptr->data)
{
return true;
}
return (x > travptr->data) ? search(travptr->right, x) : search(travptr->left, x);
}
int main()
{
Node* root = NULL;
insert(root, 1);
insert(root, 2);
insert(root, 3);
insert(root, 4);
insert(root, 5);
cout << search(root, 3) << "\t" << search(root, 10) << "\t" << search(root, 5);
return 0;
}