logo

Ekleme

Ekleme işlevi, ikili arama ağacında uygun konuma yeni bir öğe eklemek için kullanılır. Insert fonksiyonu, her değerde ikili arama ağacının özelliğini ihlal edecek şekilde tasarlanmalıdır.

  1. Belleği ağaç için ayırın.
  2. Veri kısmını değere ayarlayın ve ağacın sol ve sağ işaretçilerini NULL olarak işaretleyin.
  3. Eklenecek öğe ağacın ilk elemanı olacaksa bu düğümün solu ve sağı NULL'u işaret edecektir.
  4. Aksi takdirde, öğenin ağacın kök öğesinden küçük olup olmadığını kontrol edin, eğer bu doğruysa, ardından bu işlemi kökün soluyla yinelemeli olarak gerçekleştirin.
  5. Eğer bu yanlışsa, bu işlemi kökün sağ alt ağacıyla yinelemeli olarak gerçekleştirin.

Ekle (AĞAÇ, ÖĞE)

    Aşama 1:IF AĞAÇ = BOŞ
    TREE için bellek ayırın
    AĞACI AYARLA -> VERİ = ÖĞE
    AĞACI AYARLA -> SOL = AĞAÇ -> SAĞ = NULL
    BAŞKA
    IF ÖĞE VERİLERİ
    Ekle(AĞAÇ -> SOL, ÖĞE)
    BAŞKA
    Ekle(AĞAÇ -> SAĞ, ÖĞE)
    [IF'NİN SONU]
    [IF'NİN SONU]Adım 2:SON

ikili arama ağacına ekleme

C İşlevi

 #include #include void insert(int); struct node { int data; struct node *left; struct node *right; }; struct node *root; void main () { int choice,item; do { printf('
Enter the item which you want to insert?
'); scanf('%d',&item); insert(item); printf('
Press 0 to insert more ?
'); scanf('%d',&choice); }while(choice == 0); } void insert(int item) { struct node *ptr, *parentptr , *nodeptr; ptr = (struct node *) malloc(sizeof (struct node)); if(ptr == NULL) { printf('can't insert'); } else { ptr -> data = item; ptr -> left = NULL; ptr -> right = NULL; if(root == NULL) { root = ptr; root -> left = NULL; root -> right = NULL; } else { parentptr = NULL; nodeptr = root; while(nodeptr != NULL) { parentptr = nodeptr; if(item data) { nodeptr = nodeptr -> left; } else { nodeptr = nodeptr -> right; } } if(item data) { parentptr -> left = ptr; } else { parentptr -> right = ptr; } } printf('Node Inserted'); } } 

Çıktı

 Enter the item which you want to insert? 12 Node Inserted Press 0 to insert more ? 0 Enter the item which you want to insert? 23 Node Inserted Press 0 to insert more ? 1