伊莉討論區

標題: 畫出二元樹問題 [打印本頁]

作者: z24374203    時間: 2011-12-27 09:30 PM     標題: 畫出二元樹問題

請問給定 preorder , inorder, postorder, level order 各個order值的順序

可以畫出 樹的結構 不過 我在想 inorder判斷左右 其他好像都是上下

請問 至少要畫出整顆樹 會精準無誤嗎???

有哪位大大可以 靠給的這些order 畫出樹阿
作者: trtc008056    時間: 2011-12-27 10:35 PM

本帖最後由 trtc008056 於 2011-12-27 10:37 PM 編輯

可以用遞迴去解
preorder:
  1. preorder(Node n){
  2.     if(n==NULL)return;
  3.     cout<<n->data<<endl;
  4.     preorder(n->left_node);
  5.     preorder(n->right_node);
  6. }
複製代碼
inorder:
  1. inorder(Node n){
  2.     if(n==NULL)return;
  3.     inorder(n->left_node);
  4.     cout<<n->data<<endl;
  5.     inorder(n->right_node);
  6. }
複製代碼
postorder
  1. postorder(Node n){
  2.     if(n==NULL)return;
  3.     postorder(n->left_node);
  4.     postorder(n->right_node);
  5.     cout<<n->data<<endl;
  6. }
複製代碼
不知道這樣對不對

Level order我不太會,所以沒有寫..
作者: ajiljmn    時間: 2011-12-28 06:46 PM

如果我們知道一棵二元樹的(preorder和inorder)或(inorder和postorder)都可以算出原本的二元樹怎麼接 只知道preorder和postorder不行 因為可能有很多種
二元樹的level order是BFS順序 所以知道level order和preorder可以重新畫出原本二元樹




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!