1 #include2 #include3 #include4 #include56using
namespace
std ;78
/////////
--------------------設計樹的資料模型--------------------
///////////9
/////////
--- start !!!!
1011 template< class t >
12class treeseq : public vector13
1819 template< class iterator >
20 treeseq( iterator beg, iterator end ) : vector( beg, end )
2122
treeseq(){}
2324 friend ostream& operator
<<( ostream& out_stream, const treeseq&tree_seq )
2530
31return
out_stream ;32}
33} ;
3435 template< class t >
36const treeseqoperator+( const treeseq& tree_obj, const treeseq&tree_seq )
3745
46return
temp ;47}
4849 template< class t >
50const treeseqoperator+( const treeseq& tree_obj, const t&tree_node )
5158
/////////
--------------------設計樹的資料模型--------------------
/////////
//59
/////////
--- end !!!!
6061
62/////////
--------------------設計簿記資訊模型--------------------
/////////
//63
/////////
--- start !!!!
6465 template< class treeite >
66struct
taginfo
6775
} ;76
/////////
--------------------設計簿記資訊模型--------------------
/////////
//77
/////////
--- end !!!!
7879
80/////////
------------------根據先序中序求後序------------------
/////////
//81
/////////
--- start !!!!
8283 template< class t >
84void getafttraseq( const treeseq& pretraseq, const treeseq& midtraseq, treeseq&afttraseq )
85115
116if( stack_info.empty( ) ) break
;117
else
118130
}131
}132
/////////
------------------根據先序中序求後序------------------
/////////
//133
/////////
--- end !!!!
134135
136/////////
---------------------- 數 據 測 試 -------------------
/////////
//137
/////////
--- test !!!!
138int main( int argc, char **ar** )
139
執行結果:
1已知先序遍歷序列 : a b d e c f g
2已知中序遍歷序列 : d b e a f c g 34
運算過程的資料變化情況如下 :
5a 67
c a 89
g c a
1011
f g c a
1213
b f g c a
1415
e b f g c a
1617
d e b f g c a
1819 求得的後序遍歷序列為 : d e b f g c a
根據先序序列和中序序列求後序序列的遞迴實現
示例 測試位址 1 1 include2 2 include3 3 include445 5using namespace std 66 77 設計樹的資料模型 8 8 start99 1010 template class t 1111 class treeseq public vector12 ...
已知先序中序序列求後序序列
way 1.由先序和中序遍歷序列確定一棵二叉樹,再後序遍歷得到後序序列。如何確定呢?1.根據先序遍歷的第乙個結點確定根節點 2.根據根節點在中序遍歷序列的位置分割出左右兩個子串行,即根節點的左右子樹 3.對左右子樹按此方法遞迴進行分解。定義二叉樹的資料結構 typedef struct treeno...
已知後序中序序列求先序序列
方法呢,與前一篇一樣,建樹或者不建樹皆可,這裡不做過多說明,直接show code。way 1.typedef struct treenode bintree struct treenode bintree buildtree char post,char in,int n way 2.const ...