[英]Formatting output of tree contents - Preorder traversal
我有一種打印樹內容的方法:
void RedBlackTree::printPreorder(RedBlackNode *root){
if(root == NULL)
return;
cout << root->data << endl;
printInorder(root->left);
printInorder(root->right);
}
我的樹的內容正在正確讀出,但是我想格式化樹以使其看起來更好。 現在,對於一棵樹:
c
/ \
b k
/ / \
a d m
內容打印:
c
b
a
k
d
m
但我想添加一些縮進,使其顯示為:
c
b
a
k
d
m
格式為:
Root
Left
LeftLeft
LeftRight
Right
RightLeft
RightRight
etc....
我只是對遞歸有點迷路。 謝謝!
void RedBlackTree::printPreorder(RedBlackNode *root, int depth){
if(root == NULL)
return;
for(int i=0; i<=depth; i++)
cout <<" ";
depth++;
cout << root->data << endl;
printInorder(root->left, depth);
printInorder(root->right, depth);
}
試試看!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.