簡體   English   中英

格式化樹內容的輸出-預遍遍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM