0

我有算法, 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();
 }
}
4

3 回答 3

1

参数 ,ostream&接受任何输出流,例如输出文件。以下示例使用标准输出作为ostream

BST myBst;
// insert elements into myBst
myBst.leveltraversal( std::cout );
于 2010-10-22T05:06:45.537 回答
0

this is what i have

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();
 }
}
于 2010-10-22T05:14:53.410 回答
0

如果您不能更改函数头,您可以定义全局变量并在两个函数(mainleveltraversal)中引用它们。

于 2010-10-22T05:07:16.847 回答