template<typename T>
struct treenode {
treenode<T> * left, *right, *parent;
T data;
treenode() : left(nullptr), right(nullptr), parent(nullptr) {}
treenode(const T& param)
: left(nullptr), right(nullptr), parent(nullptr), data(param) {}
};
template<typename T>
void print_tree(const treenode * root) {
if (!root) {
std::cout << "EMPTY\r\n";
return;
}
std::queue<const treenode<T> * > q;
q.push(root);
const treenode<T>* node;
size_t sz = 0;
while ((sz = q.size()) > 0) {
for (size_t i = 0; i < sz; ++i) {
node = q.front();
std::cout << node->data << " ";
q.pop();
if (node->left)
q.push(node->left);
if (node->right)
q.push(node->right);
}
std::cout << std::endl;
}
}
вторник, 4 августа 2015 г.
Print binary tree by levels (breadth first)
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий