Gần đây tôi đã hoàn thành việc triển khai cây tìm kiếm nhị phân cho một dự án mà tôi đang làm việc. Nó diễn ra tốt đẹp và tôi đã học được rất nhiều. Tuy nhiên, bây giờ tôi cần phải thực hiện một cây nhị phân thường xuyên ... mà vì một lý do nào đó khiến tôi bối rối.Thuật toán chèn cây nhị phân
Tôi đang tìm kiếm một cách để làm chức năng InsertNode tôi ..
bình thường trong BST bạn chỉ cần kiểm tra xem dữ liệu < gốc sau đó chèn trái và ngược lại. Tuy nhiên, trong một cây nhị phân bình thường, nó chỉ được điền từ trái sang phải, một cấp tại một thời điểm ..
bất cứ ai có thể giúp tôi thực hiện một chức năng mà chỉ cần thêm một nút mới vào cây nhị phân từ trái sang phải trong không có thứ tự cụ thể?
Dưới đây là Insert của tôi cho một BST:
void Insert(Node *& root, int data)
{
if(root == nullptr)
{
Node * NN = new Node;
root = NN;
}
else
{
if(data < root->data)
{
Insert(root->left, data);
}
else
{
Insert(root->right, data);
}
}
}
Một cây tìm kiếm nhị phân là một cây nhị phân trong đó dữ liệu trong các nút được sắp xếp theo một cách cụ thể. Vì vậy, nếu bạn đã thực hiện một BST, bạn có ít để làm ... –
Phải. Đó là nơi tôi đang mắc kẹt mặc dù, tôi không nhìn thấy một cách để làm điều này chỉ đơn giản là ... – Taylor
Tôi chỉ cần thay đổi kiểm tra < > để xem nếu họ đang Null? – Taylor