所謂一條龍輸出,指對乙個二叉樹中的結點按照奇數行從左到右,偶數行從右到左輸出。
思路:可以看作是按層遍歷的變形,建立兩個棧s1、s2,其中s1按照先左子後右子的順序存放數行的結點,s2按照先右子後左子的順序存放偶數行的結點。利用棧的先進後出的性質可以按照要求的順序對結點進行遍歷。
操作:先把root存入s1,然後將root的子結點存入s2,先存左子節點,再存右子節點(空則不操作),彈出root。這時s1空,將s2中的兩個結點(根據filo先是root的右子,再是root的左子)的右子節點和左子節點分別存入s1,並彈出。s2空,於是對s1中的結點進行操作,依次類推…
**:
main.cpp
#include
#include
"stack.h"
using namespace std;
class node
node(int e, node *p1 =
null, node *p2 =
null)
};class tree
void insert(int x);
void reverseorder();
void output();
private:
node *root;
};void tree::insert(int x)
else
if (x < q->key)
q->left =
new node(x);
else
q->right =
new node(x);
}}void tree::reverseorder()
while (!s2.isempty())
}cout << endl;
}int main() ;
tree t;
for (int i = 0; i < 15; i++)
t.reverseorder();
return 0;
}
stack.h
template t>
class snode
};template t>
class stack
void push(t x);
t pop();
private:
snode* top;
};templatet>
stack::stack()
templatet>
void stack::push(t x)
template t>
t stack::pop()
執行結果:
Typora iPic Mac 輸出文章一條龍
typora是一款 所見即所得 的markdown編輯工具 ipic mac專享 是一款圖床神器,不論螢幕截圖 還是複製,都可以自動上傳 儲存 markdown 格式的鏈結,直接貼上插入。自帶微博圖床,一年衝50 後可以拓展其他圖床。這樣的話在往typora文件中插入本地或者網路時就會自動上傳到圖床...
ubuntu裝機一條龍
ubuntu 20.04 安裝 安裝windows虛擬機器 中文輸入法 軟體安裝 sudo apt get install fcitx googlepinyin 谷歌拼音輸入法 sudo apt get install git git sudo apt get install stacer 系統管理...
nvm安裝 node nrm gulp一條龍
windows下安裝及使用nvm nvm安裝前需要解除安裝原來的node.js 更改nvm資料夾內settings.txt 根據自己電腦查詢users是自己的電腦使用者名稱 在你安裝的目錄下找到settings.txt檔案,開啟後加上 node mirror npm mirror nvm versi...