Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
457
Tıklama
0
Öne Çıkarma
c++ da Binary Trees yardımı
H
11 yıl (161 mesaj)
Çavuş
Konu Sahibi

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;

}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

B
11 yıl (76 mesaj)
Çavuş

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.