針對之前寫的那個前序遍歷,修改了一下。思路和按層遍歷是一樣的(看別人的文章獲悉這兩個遍歷思路一樣,寫完**才發現,的確一樣)
因為順序是根---->右孩子---->左孩子,所以,先輸出(或者是其他的處理)根,然後將右孩子和左孩子分別入棧,每次出棧的節點只有乙個,所以出棧之後的節點再將它的右孩子左孩子分別入棧。。。(就是遞迴版本的執行時棧情況)
#include #include using namespace std;
struct bstnode
};stackst;
void insert(bstnode* &p, int elem)
if(elem > p->value)
else if(elem < p->value)
else
cout << "the same!" << endl;
}void preorder(bstnode* root)
if(p->left)
}}int main(void)
C 中的auto ptr 修改版本
stl 檔案中的 std auto ptr 在c 中的故事特別多,在它的演變過程中至少出現了3個版本.http josuttis.com libbook auto ptr.html 這個連線裡面有它完整的故事.vc6中stl帶的auto ptr 帶owner欄位 的版本應該就是文中說的version...
樹的先序遍歷
先序遍歷順序 根 左 右 對於任一結點p 1.訪問結點p,並將結點p入棧 2.判斷結點p的左孩子是否為空,若為空,則取棧頂結點並進行出棧操作,並將棧頂結點的右孩子置為當前的結點p,迴圈至1 若不為空,則將p的左孩子置為當前的結點p 3.直到p為null並且棧為空,則遍歷結束 所以 1 先將根節點入棧...
Oracle的DMP檔案修改版本號
概括的說就是折騰。1 11g的oracle備份 原來不知道 往10g的oracle恢復,恢復的時候提示頭不對,於是漫長的修改版本號開始了。2 由於備份很大很大,開始用ue等開啟試試,漫長的等待後卡死 磁碟空間不足。3 於是開始找檔案分割工具,找到了工具。結果因為太大,好不容易分割完了,合併的時候總是...