先根序周游的非递归算法 void preoRder( Tree t)i PSeqStack s=createEmptyStack( Tree c=t do i while(! Null(c))i visit(c ); push(S,c); c=leftchild (t, c); while( null( c)&&isEmptystack(s))i c= rightSibling(t, top(s)); pop(s) 3 while(!Null(c)); 下一顶
返回本章首页 下一页 上一页 先根序周游的非递归算法 void npreOrder ( Tree t ) { PSeqStack s = createEmptyStack ( ); Tree c = t; do { while ( !Null ( c ) ) { visit ( c ); push ( s, c ); c = leftChild ( t, c ); } while ( Null ( c ) && !isEmptyStack (s)) { c = rightSibling ( t, top (s) ); pop (s); } } while( !Null ( c ) ); }
void in order( Tree t){/中根序周游* Tree c=left Child( t); if(!Null(c))inOrder(c); visit( root( t)); if (!Null(c)) while(! Null(c= rightSibling(t, c))) in Order(t, c); void postOrder( Tree t){/后根序周游* Tree c=leftChild(t, p) while(!Null(c))i postOrder(c); c=rightSibling(t, c); visit( root( t)); 下一顶
返回本章首页 下一页 上一页 void inOrder( Tree t ) { /*中根序周游*/ Tree c = leftChild ( t ); if ( !Null ( c ) ) inOrder( c ); visit( root( t ) ); if ( !Null ( c ) ) while ( !Null(c = rightSibling (t, c )) ) inOrder ( t, c ); } void postOrder( Tree t ) { /*后根序周游*/ Tree c = leftChild (t, p); while ( !Null ( c ) ) { postOrder ( c ); c = rightSibling (t, c); } visit( root( t ) ); }
void levelOrder( Tree t)i PSeq Queue q=createEmpty Queue(); Tree c=t; if( Null(c)) return; en Queue seq(, c); while (isempty Queue(@))i c- Queue(); de Queue(q) visit( root(c)); c=leftchild(t, c); while(! Null(c))i en Queue(q, c); A IghtSibling(t, c); 下一顶
返回本章首页 下一页 上一页 void levelOrder( Tree t) { PSeqQueue q = createEmptyQueue( ); Tree c = t; if ( Null(c) ) return; enQueue_seq(q, c); while (!isEmptyQueue (q)) { c = frontQueue (q); deQueue (q); visit( root( c ) ); c = leftChild (t, c); while ( !Null(c) ) { enQueue (q,c); c = rightSibling ( t, c ); } } }
8.1.6树林的周游 是其中的树的周游的总和 1.先根(A,B,C,K,D,E,H,F,JG) 2后根(B,K,C,A,H,E,J,FG,D) ad E F K 下一顶
返回本章首页 下一页 上一页 8.1.6 树林的周游 是其中的树的周游的总和 1. 先根(A, B, C, K, D, E, H, F, J, G ) 2. 后根( B, K, C, A, H, E, J, F, G, D )
8.2树和树林的存储表示 √,2.1树的存储表示 ,2.2树林的存储表示 下一顶
返回本章首页 下一页 上一页 8.2 树和树林的存储表示 8.2.1 树的存储表示 8.2.2 树林的存储表示