正在加载图片...
template <class Type> void DblStack<Type> DblPush( const Type& x, int i)i 如果 IsFull(),则报错:否则把x插入到栈i的栈顶 assert(!IsFull (; ∥断言:栈满则出错处理,停止执行 o[OT ∥栈0情形:栈顶指针先加1,然后按此地址进栈 else elements[--top[=x; 栈1情形:栈顶指针先减1,然后按此地址进栈 template <class Type> int DblStack<Type> :: DblPop( int 1)t 如果 IsEmpty(i),则不执行退栈,返回0:否则退掉位于栈i栈顶的元素,返回1 if( IsEmpty (i))return 0; ∥判栈空否,若栈空则函数返回0 if(i==0)top[o]-; 0情形:栈顶指针减1 else top[ 1]++; 1情形:栈顶指针加1 template <class Type> Type*DblStack<Type> DblGetTop( int i)i ∥若栈不空则函数返回该栈栈顶元素的地址 if( IsEmpty int i ))return NULL ∥判栈i空否,若栈空则函数返回空指针 return& elements[ top ∥返回栈顶元素的值 template <class Type> void Make Empty int i)& if (i=0)topo=bot[0=-1; else top[ 1]= bot[ 1]=m; 写出下列中缀表达式的后缀形式: (1)A*B*C (2)-A+B-C+D (4)(A+B)*D+E/(F+A*D)+C (5)A&&B||!(E>F)体注:按C+的优先级* (6)!(A&&!(B<C)|C>D))!C<E) 【解答】 (AB+C+ (2)A-B+C-D+ (3)AB-*C (4)AB+D*EFAD*+/+C+ (5)AB&&EF>! (6)ABC<CD>‖|!&&!CE< 3-6根据课文中给出的优先级,回答以下问题 (1)在函数 postfix中,如果表达式e含有n个运算符和分界符,问栈中最多可存入多少个元素?20 template <class Type> void DblStack<Type> :: DblPush ( const Type& x, int i ) { //如果 IsFull ( ),则报错;否则把 x 插入到栈 i 的栈顶 assert ( !IsFull ( ) ); //断言: 栈满则出错处理,停止执行 if ( i == 0 ) elements[ ++top[0] ] = x; //栈 0 情形:栈顶指针先加 1, 然后按此地址进栈 else elements[--top[1] ] = x; //栈 1 情形:栈顶指针先减 1, 然后按此地址进栈 } template <class Type> int DblStack<Type> :: DblPop ( int i ) { //如果 IsEmpty ( i ),则不执行退栈,返回 0;否则退掉位于栈 i 栈顶的元素,返回 1 if ( IsEmpty ( i ) ) return 0; //判栈空否, 若栈空则函数返回 0 if ( i == 0 ) top[0]--; //栈 0 情形:栈顶指针减 1 else top[1]++; //栈 1 情形:栈顶指针加 1 return 1; } template <class Type> Type * DblStack<Type> :: DblGetTop ( int i ) { //若栈不空则函数返回该栈栈顶元素的地址。 if ( IsEmpty ( int i ) ) return NULL; //判栈 i 空否, 若栈空则函数返回空指针 return& elements[ top[i] ]; //返回栈顶元素的值 } template <class Type> void MakeEmpty ( int i ) { if ( i == 0 ) top[0] = bot[0] = -1; else top[1] = bot[1] = m; } 3-5 写出下列中缀表达式的后缀形式: (1) A * B * C (2) - A + B - C + D (3) A* - B + C (4) (A + B) * D + E / (F + A * D) + C (5) A && B|| ! (E > F) /*注:按 C++的优先级*/ (6) !(A && !( (B < C)||(C > D) ) )||(C < E) 【解答】 (1) A B * C * (2) A - B + C - D + (3) A B - * C + (4) A B + D * E F A D * + / + C + (5) A B && E F > ! || (6) A B C < C D > || ! && ! C E < || 3-6 根据课文中给出的优先级,回答以下问题: (1) 在函数 postfix 中,如果表达式 e 含有 n 个运算符和分界符,问栈中最多可存入多少个元素?
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有