2010-10-22 1 views
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(); 
} 
} 
+0

Это бесплатная функция, или член-функция некоторого класса? (Я ожидаю, что последнее последнее.) – Arun

+0

Это член класса BST – Steven

+0

Позвольте мне попробовать это, и я не могу вернуться к вам. – Steven

ответ

1

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

BST myBst; 
// insert elements into myBst 
myBst.leveltraversal(std::cout); 
+0

@Steven: Я обновил ответ и предоставил ссылку для 'ostream'. – Arun

0

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

+0

Я не понимаю, как распечатать его, – Steven

+0

-1, так как вы никогда не должны использовать какую-либо форму глобального состояния в качестве параметра ввода скрытой функции. Этот параметр * очень * может создать боль в будущих изменениях кода. – Rudi

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(); 
} 
} 
+0

Это не ответ - может быть, более подходящим для «редактирования» вашего вопроса и добавления этого материала туда. Затем вы можете удалить этот ответ, включая этот комментарий. – Arun

+0

как правильно форматировать код в комментарии? – Steven

+0

Хорошо - я отредактировал вопрос для вас и добавил определение метода. Вы можете удалить этот ответ сейчас. – Arun