根據先序序列和中序序列求後序序列的迴圈實現

2022-09-18 23:42:12 字數 2670 閱讀 1850

1 #include2 #include3 #include4 #include5

6using

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 ...