這是乙個二叉樹的問題,題目如下
事實上考的就是二叉樹的資料結構以及先序和中序遍歷。一般來說,僅僅由先序遍歷序列無法得到中序序列,然而,本題特殊的地方在於先序遍歷序列中給出了遍歷中遇到的空指標,這樣就很容易根據序列構造二叉樹:依次訪問先序序列,遇到#就返回空指標,遇到非#字元就構造乙個對應的節點,然後按照先左後右的順序插入子樹,子樹由遞迴使用該演算法得到,直到結束序列遍歷。構造好二叉樹後,輸出中序遍歷序列就很容易了。**如下:
#include #include #include char s[101];
int size,x;
typedef struct node
node;
node *insert()
else
}}void inorder(node *t) //中序遍歷輸出序列 }
int main()
return 0;
}
九度1019解題報告
關於計算器的題目該題要編寫的計算器比一般的計算器簡單,因為不含括號,運算優先順序就兩種,先算乘除法就好,這是受到了fripside同學的啟發,不需要算術符號棧,只需要數字棧,遇加減號就將下乙個數字入棧 遇減號將數字反號入棧 遇乘除號,就將棧頂的數字取出運算後再入棧。當處理完整個計算式時,將棧中的所有...
九度1139解題報告
最小子矩陣問題是求最優解的一類題,看到題目就想到兩種做法,乙個是dp,乙個是搜尋遍歷的方法。雖然深搜很多時候並不是用來解決最優解問題的,但是dp的做法,我暫時沒有想到該怎麼做,於是就先用dfs,如下 include using namespace std define inf 999999999 i...
九度1491解題報告
舉個例子來闡明解題的基本思路。例如,n 4321,我們對其各個數字進行分解,4321 4000 300 20 1,然後從低位到高位一次進行分析。個位1,只能含乙個1,而十位20又可分為1 10和11 20,個位數字有兩次迴圈,而每次迴圈會出現乙個1和乙個2,十位10 19又含有十個1,20含有乙個2...