Inplementation of Binary Search Tree using recursion-local version 3【1月23日学习笔记】

点击查看代码
#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;
}
posted @ 2024-01-23 16:35  bituion  阅读(6)  评论(0)    收藏  举报