Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memasukkan elemen ke dalam BST (DSA)?
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 :-
Ia kelihatan seperti ini
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 .
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!