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

Bagaimana untuk Memasukkan elemen ke dalam BST (DSA)?

Patricia Arquette
Lepaskan: 2024-10-31 05:45:30
asal
661 orang telah melayarinya

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;
}
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan