Бинарное дерево поиска - вызов функции breadthFirst - PullRequest
0 голосов
/ 22 октября 2010

У меня есть алгоритм для void leveltraversal(ostream& out);, но я не уверен, как вызвать его в main ().В моем назначении нам не разрешено изменять заголовочный файл.Есть ли способ вызвать его без перегрузки?

Обновление:

void BST::levelTraversal(ostream& out){
 queue<BST::BinNode*> q;
 BinNode* cur = myRoot;
 BinNode* top = NULL;
 q.push(cur);
 while(q.empty() != false){
  top = q.front();
  if(top->left != NULL){
   q.push(top->left);
  }
  if(top->right !=NULL){
   q.push(top->right);
  }
  out<<top->data;
  q.pop();
 }
}

Ответы [ 3 ]

1 голос
/ 22 октября 2010

Параметр ostream& принимает любой выходной поток , например, выходной файл.В следующем примере стандартный вывод используется как ostream:

BST myBst;
// insert elements into myBst
myBst.leveltraversal( std::cout );
0 голосов
/ 22 октября 2010

это то, что у меня есть

void BST::levelTraversal(ostream& out){
 queue<BST::BinNode*> q;
 BinNode* cur = myRoot;
 BinNode* top = NULL;
 q.push(cur);
 while(q.empty() != false){
  top = q.front();
  if(top->left != NULL){
   q.push(top->left);
  }
  if(top->right !=NULL){
   q.push(top->right);
  }
  out<<top->data;
  q.pop();
 }
}
0 голосов
/ 22 октября 2010

Если вы не можете изменить заголовок функции, вы можете определить глобальные переменные и ссылаться на них в обеих функциях (main и leveltraversal).

...