Binarny strom v C++

Programovacie jazyky, rady, poradňa...
malinator
Novice
Novice
Používateľov profilový obrázok
Príspevky: 7
Registrovaný: 13 dec 2008, 16:47
Kontaktovať používateľa:

Binarny strom v C++

Príspevok od používateľa malinator »

Caute, mali sme spravit v skole binarny strom cez triedy. Funkcie iba na pridanie prvku a vypis stromu, riesenie ako take mam ale nie podla poziadavkov cviciaceho a neviem sa pohnut tu je zdrojak:

Kód: Vybrať všetko

#include <iostream>

using namespace std;

class Node {
private:
  Node *left;
  Node *right;
  int data;
};

class BTree {
private:
/*  struct Node {
    Node* left;
    Node* right;
    int data;
  };
*/
  Node* root;
public:
  BTree() {
    root = NULL;
  }
  void Print();
  void InOrder(Node*);
  void Insert(int data);
};

void BTree::Insert(int value) {
  Node* tmp = new Node;
  Node* rodic;
  tmp->data = value;
  tmp->left = NULL;
  tmp->right = NULL;
  rodic = NULL;

  if (root==NULL) {
    root = tmp;
  }
  else {
    Node* aktualny;
    aktualny = root;
    while(aktualny) {
      rodic = aktualny;
      if (tmp->data > aktualny->data) {
        aktualny = aktualny->right;
      }
      else aktualny = aktualny->left;
    }

    if(tmp->data < rodic->data) {
      rodic->left = tmp;
    }
    else rodic->right = tmp;
  }
}

void BTree::InOrder(Node* tree)
{
    if(tree != NULL)
    {
        if(tree->left) InOrder(tree->left);
        cout<<" "<<tree->data<<" ";
        if(tree->right) InOrder(tree->right);
    }
    else return;
}

void BTree::Print()
{
  InOrder(root);
}

int main() {
  BTree Strom;
  Strom.Insert(5);
	Strom.Insert(3);
	Strom.Insert(7);
	Strom.Insert(2);
	Strom.Insert(8);
  Strom.Print();
  return 0;
}
Ked odkomentujete struct Node a zakomentujete triedu Node tak to ide, lenze ja by som potreboval aby Node bol ako trieda a smerniky a int boli v private...
Problem je ten ze neviem dostat tie hodnoty z private a uz som skusal vsetko a stale mi vypisuje ze nemam pristup. Najde sa niekto kto by si s tym vedel rady? :]
Napísať odpoveď