3樹 1樹的遍歷

2021-09-02 15:28:22 字數 1855 閱讀 3581

重寫棧遍歷

#includeusing namespace std;

struct binarytreenode

};void connecttreenode(binarytreenode* pnode,binarytreenode* pleft,binarytreenode* pright) //父結點為空出錯

pnode->m_pleft=pleft; //賦左兒

pnode->m_pright=pright; //賦右兒

}void visit(binarytreenode* pnode)//訪問結點,非空就輸出其值

void preorderwithstack(binarytreenode* proot)

}void inorderwithstack(binarytreenode* proot)

else

}}void postorderwithstack(binarytreenode* proot)

else

}else

}}int main()

};void connecttreenode(binarytreenode* pnode,binarytreenode* pleft,binarytreenode* pright) //父結點為空出錯

pnode->m_pleft=pleft; //賦左兒

pnode->m_pright=pright; //賦右兒

}void visit(binarytreenode* pnode)//訪問結點,非空就輸出其值

void preorderrecursion(binarytreenode* proot)

void inorderrecursion(binarytreenode* proot)

void postorderrecursion(binarytreenode* proot)

void preorderwithstack(binarytreenode* proot)//遍歷完了左子樹以後,從最後入棧的結點開始,檢查它是否有右子樹

if(!st.empty()) //遍歷思想:對每個點都先走到其最左下的兒子,然後是按輸出的逆次序逐個點訪問其右兒

} //如果存在右兒,又走到其右兒的最左下的兒子,然是繼續按照當前輸出的逆次序逐個點訪問

} //如果操作點是空的,就讀棧吧,可以保證棧頂讀出來的結點是沒有左兒子的

void inorderwithstack(binarytreenode* proot)//每次操作的點都只能入棧不能輸出

if(!st.empty()) //遍歷思想:對每個點都先走到其最左下的結點,路徑的點全壓入棧裡,然後輸出棧頂,遞迴到右兒子

} //對右兒子走到其最左下的結點,路徑的點全壓入棧裡,然後輸出棧頂,如此類推

} //一句話:遍歷左子樹,出棧訪問結點,遍歷右子樹

void postorderwithstack(binarytreenode* proot)else

else//遍歷思想:對每個點都先走到其最左下的結點,路徑的點全壓入棧裡,然後依次逆序讀出棧頂元素

}//如果有右兒,遞迴到右兒子,繼續走到其最左下的結點,路徑的點也全壓入棧裡

}//如果讀到的棧頂元素沒有右兒,直接輸出並打上已訪問標記!關鍵在這裡:作用是此結點為其老豆的右兒時,其老豆第二次出棧要判斷右兒是否已訪問

}//因為其老豆第一次從棧頂讀出時判到有右兒就會不出棧,且往右兒遞迴,則當右兒遞迴完之後要打個標記讓老豆知道

void levelorder(binarytreenode* proot)

}int main()

*/

樹的遍歷 樹的遍歷(PTA)

給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。7 2...

樹及樹的遍歷

幾個概念和性質 樹可以沒有結點,此情況下稱為空樹 empty tree 樹的層次 layer 從根結點開始算起,即根節點為第一層 把節點的子樹棵樹稱為結點的度 degree 而樹中結點的最大值的度稱為樹的度 樹的邊數等於結點數減1,反之,滿足連通且邊數等於結點數減1即為樹 結點深度自頂向下累加,結點...

LeetCode 二叉樹1 樹的遍歷

note 後序遍歷在表示式上的應用 用遞迴的方式遍歷二叉樹 note 遞迴的實現方式裡,函式的返回值需要為void型別,否則沒法進行。所以我們需要設定乙個help函式來完成遞迴。後序遍歷 definition for a binary tree node.struct treenode class ...