treeprnt.cpp
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C++ 代码 · 共 49 行
CPP
49 行
#include "base/gbtree.h"
#include <iostream.h>
#include <iomanip.h>
void TreePrint (CL_GenericBTreeNode* root, short level)
{
if (!root)
return;
CL_BTreeNodeSpace* space = root->NodeSpace();
CL_GenericBTreeNode* child;
child = space->BorrowNode (root->Subtree(0));
TreePrint (child, level+1);
space->ReturnNode (child);
register short n = root->Size();
for (short i = 0; i < n; i++) {
for (short j = 0; j < 4*level; j++) cout << ' '; // Indentation
cout << (i == n/2 ? "|---> |" : "| |");
cout << (long) root->Item (i) << endl;
child = space->BorrowNode (root->Subtree(i+1));
TreePrint (child, level+1);
space->ReturnNode (child);
}
}
void PrettyPrint (const CL_GenericBTree& tree)
{
CL_BTreeNodeSpace* space = tree.NodeSpace();
CL_GenericBTreeNode* root = space->BorrowRoot ();
TreePrint (root, 0);
space->ReturnNode (root);
}
main ()
{
CL_AbstractComparator cmp;
CL_GenericBTree tree (cmp);
long num[] = { 42, 49, 63, 75, 15, 23, 37, 41, 81, 99};
for (short i = 0; i < sizeof num/sizeof (long); i++)
tree.Add ((void*) num[i]);
PrettyPrint (tree);
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?