Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



Vyhledání uzlu v binárním vyhledávací stromu C++

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Vyhledání uzlu v binárním vyhledávací stromu C++

Autor: tc1 ♂

18:26:03 23.06.2014

tree_node* temp = this;

Citovat příspěvek

 

Vyhledání uzlu v binárním vyhledávací stromu C++

Autor: JaNevim ♂

12:47:23 23.06.2014

Ahoj, potřeboval bych poradit. Napsal jsem kod binarniho vyhledavacího stromu v C++.
Konkretně mam problem s metodou bool search(int), která by měla vzít uživatelem zadané číslo(uzel) vrátit bud TRUE nebo FALSE na zakladě toho zdali ten strom obsahuje daný uzel.
Bohužel tam mam asi chybu protože při spuštění programu se nic nevrátí (program se spustí, žádne chyby se neobjeví, po zadání čísla jakoby ta metoda proběhne až po ten brake ale nevrátí to ani TRUE ani FALSE). Děkuji za pomoc.

HEADER FILE

class BinarySearchTree
{
private:
struct tree_node
{
tree_node* left;
tree_node* right;
int data;
};
tree_node* root;
public:
BinarySearchTree()
{
root = NULL;
}
void insert(int);
bool isEmpty() const { return root==NULL; }
bool search(int);

};

------------------------------------------------
SOUBOR S METODAMI (uvádím jen tu metodu bool search(int))

bool BinarySearchTree::search(int d)
{
tree_node* temp = root;
while (temp != NULL)
{
if (temp->data == d)
{
return true;
}
else
{
if (d > temp->data)
{
temp = temp->right;
}
else
{
temp = temp->left;
}
}
}
return false;
}

-------------------------------------------
SOUBOR MAIN

int main()
{
BinarySearchTree b;
int ch,tmp,tmp1;
while(1)
{
cout<<endl<<endl;
cout<<" Binary Search Tree Operations "<<endl;
cout<<" ----------------------------- "<<endl;
cout<<" 1. Insertion/Creation "<<endl;
cout<<" 2. Obsahuje strom tento uzel? "<<endl;
cout<<" 3. Exit "<<endl;
cout<<" Enter your choice : ";
cin>>ch;
switch(ch)
{
case 1 : cout<<" Enter Number to be inserted : ";
cin>>tmp;
b.insert(tmp);
break;
case 2 : cout<<" Napiš číslo uzlu : ";
cin>>tmp1;
b.search(tmp1);
break;
case 3 : system("pause");
return 0;
break;
}
}
}

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: