題目:請設計乙個演算法,將給定的表示式樹(二叉樹)轉換為等價的中綴表示式(通過括
號反映操作符的計算次序)並輸出。例如,當下列兩棵表示式樹作為演算法的輸入時:
二叉樹結點定義如下:
typedef
struct node
btree;
要求:
(1)給出演算法的基本設計思想。
(2)根據設計思想,採用c或c++語言描述演算法,關鍵之處給出注釋。
參考**
#include
using
namespace std;
const
int n =10;
typedef
struct node
btree;
//生成中綴表示式是利用樹的中序遍歷
void
inorder
(btree *tree,
int depth)
else
inorder
(tree-
>left,depth+1)
; cout<
>data;
//輸出運算子
inorder
(tree-
>right,depth+1)
;if(depth>
1)cout<<
")";
//輸出右括號;}}
int preorder[30]
;//前序遍歷序列
int inorder[30]
;//中序遍歷序列
char element[30]
[n];
//元素,每乙個序列編乙個唯一的標識(可以按照層次遍歷)
btree*
maketree
(int l1,
int r1,
int l2,
int r2)
intmain()
for(
int i=
0;i++i)
for(
int i=
0;i++i)
btree * tree =
maketree(0
,n-1,0
,n-1);
//構造一顆樹
inorder
(tree,1)
;//輸出中綴表示式
}
測試資料1
8*+
* a b c - d01
3425
6731
4052
67
輸出1
(a+b)
*(c*
(-d)
)
測試資料2
8+*
- a b - c d01
3425
6731
4026
57
輸出2
(a*b)+(
-(c-d)
)
計算機考研
最近看到有同學對計算機考研有一些疑問,今天抽空來寫一寫自己關於考研的了解以及看法。當然這裡不是說考研好不好,畢竟每個人看法都不一樣,我要說的看法是關於考研決心與複習方式的看法。一 確定學校 個人認為考研首先要確定學校,因為現在考研自主命題的學校越來越多,不先確定學校的話,很難進行專業課的複習,尤其計...
給2023年計算機考研學弟學妹的意見
前天在官網的擬錄取名單中,看到了自己的名字,排名學碩28名,有一些獎學金,不算滿意,但終歸心裡的石頭總算落下,也算給自己過去的一年的付出給乙個交代,和乙個階段告乙個段落吧。結束,也是新的開始!下一程,三年.寫這篇日誌的目的很簡單,因為我考上並不是我乙個人的功勞,在過去的一年裡,我得到了很多學長學姐的...
2023年計算機考研408真題 29題
2014年計算機考研408真題 29題 29.在乙個檔案被使用者程序首次開啟的過程中,作業系統需做的是 b a.將檔案內容讀到記憶體中 b.將檔案控制塊讀到記憶體中 c.修改檔案控制塊中的讀寫許可權 d.將檔案的資料緩衝區首指標返回給使用者程序 相關知識點 檔案的開啟與關閉 一直感覺這個地方學的比較...