前序中序求後序

2021-08-16 15:45:26 字數 676 閱讀 6474

test:

fdxeag

xdefag

/*涉及到二叉樹的問題最好不用動態申請,對記憶體的管理很麻煩

採用預分配的靜態陣列

*///本題目由前序和中序得到後序,方法:先構造二叉樹,再進行

#include#includestruct nodetree[50];

char str1[50],str2[50];//分別存放前序和中序

int loc;//指向下乙個尚未分配到的位置

node *creat()

void postorder(node *t)

/* 先序的第乙個是根,確定其在中序下的位置即可劃分左右子樹

*/node *build(int s1,int e1,int s2,int e2)

} int size=root-s2;

//當root不為s2和e2時有左右子樹

if(root!=s2)

ret->lchild=build(s1+1,s1+size,s2,root-1);

if(root!=e2)

ret->rchild=build(s1+size+1,e1,root+1,e2);

return ret;

}int main()

return 0;

}

前序中序求後序 後序中序求前序層次 模板

這是資料結構的知識。剛開始先拒絕用指標去寫。當我把這個想法和別人分享是,別人說不喜歡用指標的程式設計師不是乙個好的c c 程式設計師。所以,就有了這麼勵志的時刻,我參考大牛的 自己用指標寫了個遍,直接1a 不用指標總是出現各種想不到的錯誤。心累。orz.include include include...

根據前序中序求後序

如前序 為 abdecgf 中序 為 bdacgef 先 根據前序第乙個節點 把中序分為bd和cgef兩部分,a為根節點,a左邊為左子樹,右邊為右子樹。再把左右子樹分別做上述步驟。以此類推 根據第二,第三.個節點構成二叉樹 a b e d c f g b 再根據後序的性質得到dbgcbfea 知道後...

已知前序中序,求後序

思路 先序的遍歷規則為根 左 右,中序的遍歷規則為左 根 右,所以我們在中序中找到與a a必為根 相等的字元,則在中序中g d h b為a的左子樹,e i c j f為a的右子樹,在左子樹和右子樹中,重複前面過程,最後逆向將根列印出來,就是其後序。是乙個遞迴過程 include include us...