Şimdi Ara

c++ da Binary Trees yardımı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
331
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar merhaba, aşağıdaki kodumda 2 tane branch var, sağ ve sol. sağ branchdeki 60ı silmek istiyorum daha sonra da root'un sağ branch'inin solundaki en büyük rakam olan 57yi bulmak istiyorum. nasıl yapabilirim ?
    #include <iostream>
    #include <stdlib.h>
    using namespace std;

    struct leaf
    {
    int number;
    leaf *left;
    leaf *right;
    };

    void ListTree(leaf *root)
    {
    if(root!=NULL)
    {
    cout << root->number << endl;
    ListTree(root->left);
    ListTree(root->right);
    }
    }

    leaf *CreateLeaf(int number)
    {
    leaf *newleaf;
    newleaf = (leaf *)malloc(sizeof(leaf));
    if(newleaf==NULL) return(NULL);
    newleaf->number = number;
    newleaf ->left = NULL;
    newleaf ->right = NULL;
    return newleaf;
    }

    leaf *FindNode(int number,leaf *root)
    {
    leaf *before=NULL;
    while(root!=NULL)
    {
    if(number==root->number) return root;
    before=root;
    if(number<root->number) root = root->left;
    else root = root->right;
    }
    return before;
    }
    bool AddNode(int number,leaf *root)
    {
    leaf *newnode = CreateLeaf(number);
    if(newnode == NULL) return false;
    if(root == NULL) return false;
    leaf *whereto = FindNode(number,root);
    if(whereto == NULL) return false;
    if(whereto->number == number) return false;
    if(number< whereto->number)whereto->left=newnode;
    else whereto->right=newnode;
    return true;
    }

    int main(void)
    {
    leaf *root = CreateLeaf(40);
    AddNode(40,root);
    AddNode(20,root);
    AddNode(60,root);
    AddNode(10,root);
    AddNode(30,root);
    AddNode(50,root);
    AddNode(70,root);
    AddNode(42,root);
    AddNode(55,root);
    AddNode(65,root);
    AddNode(73,root);
    AddNode(52,root);
    AddNode(57,root);
    AddNode(66,root);
    AddNode(56,root);
    cout << "List of the tree is:\n";
    ListTree(root);
    leaf *myleaf = FindNode(99,root);
    if(myleaf != NULL)
    {
    cout << "FOUND : " << myleaf->number << endl;
    }
    system("PAUSE");
    return 0;

    }



    < Bu mesaj bu kişi tarafından değiştirildi helsing2 -- 5 Aralık 2015; 16:00:09 >







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.