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)
Комментариев нет:
Отправить комментарий