Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memasukkan elemen ke dalam BST (DSA)?

Bagaimana untuk Memasukkan elemen ke dalam BST (DSA)?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 05:45:30637semak imbas

Hari ini kita akan belajar tentang BST dan cara kita boleh memasukkan satu elemen atau kita boleh menyebut satu nod ke dalam BST**. Adalah mudah bagi mereka yang telah mengetahui tentang BST dan senarai pautan Berganda ini kepada topik adalah penting sebelum anda membaca artikel ini. Jadi saya telah menyediakan pautan untuk topik ini anda boleh merujuknya.-

1.Untuk senarai pautan berganda
2.Untuk pokok Binari

Jadi sebelum Mengetahui cara memasukkan satu nod ke dalam BST. Anda mesti tahu apa itu BST , BST ialah

** Pokok Carian Binari**
yang mempunyai beberapa sifat seperti :-

  1. Nod kiri mempunyai nilai yang kurang atau berbanding dengan elemen akar dan kanan
  2. Nod akar mempunyai nilai yang lebih rendah berbanding dengan nod kanan
  3. Dan apabila kita melakukan triverse nod dengan menggunakan triversal Inorder, ia akan berlaku berikan tatasusunan diisih menaik.

Ia kelihatan seperti ini
How to Insert element into a BST (DSA) ?

Untuk memasukkan elemen ke dalam BST, kami memerlukan satu penunjuk yang menghala ke nod akar kerana di beberapa bahagian kami perlu membandingkan kunci kami dengan data akar yang bagaimana kami tahu sama ada kunci itu akan dimasukkan sama ada ke kiri atau kanan .

How to Insert element into a BST (DSA) ?

Maka mula-mula kami mencipta nod dan memulakannya untuk berkelakuan sebagai BST.

Ini ialah kod yang anda boleh rujuk kod terdapat dalam bahasa C.

#include<stdio.h>
#include<stdlib.h>
struct node{
   struct node* left;
   int data;
   struct node* right;
};
struct node* createNode(int key){
   struct node * newNode = NULL;
   newNode = malloc(sizeof(struct node));
   newNode->left = NULL;
   newNode->data = key;
   newNode->right = NULL;

   return newNode;
}
void insertNewNode(struct node* root , int key){
    struct node * prev = NULL;
    while(root!=NULL){
        prev = root;
        if(key==root){
            printf("element cannot insert it is present 
                              inside the bst already");
            return ;
        }
        else if(key>root->data)
        {   
                root = root->right;
        }
        else{
            root = root->left;
        }
    }
    struct node * newNode = createNode(key);
    if(key>prev->data){
        prev->right = newNode;
    }
    else{
        prev->left = newNode;
    }
}
void inOrder(struct node* root){
     if(root == NULL){
        return root;
    }
    inOrder(root->left);
    printf("%d",root->data1`1);
    inOrder(root->right);

}
int main(){

    struct node* head1 = createBst(20);
    struct node* head2 = createBst(10);
    struct node* head3 = createBst(30);


    head1->left=head2;
    head1->right=head3;

    insertNewNode(head1,40);
    printf("%d\n",head1->right->right->data);
    inOrder(head1);




    return 0;
}

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan elemen ke dalam BST (DSA)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn