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

これは私が持っているものです

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 に答える