第三章栈和列队辨析.ppt

//初始化一个大小为m的双向栈s Status Init_Stack(DblStack s,int m) { s.V=new SElemType[m]; s.bot[0]=-1; s.bot[1]=m; s.top[0]=-1; s.top[1]=m; return OK; } 答案 //判栈i空否, 空返回1, 否则返回0 int IsEmpty(DblStack s,int i) {return s.top[i] == s.bot[i]; } //判栈满否, 满返回1, 否则返回0 int IsFull(DblStack s) { if(s.top[0]+1==s.top[1]) return 1; else return 0;} 答案 void Dblpush(DblStack s,SElemType x,int i) { if( IsFull (s ) ) exit(1); // 栈满则停止执行 if ( i == 0 ) s.V[ ++s.top[0] ] = x; //栈0情形:栈顶指针先加1, 然后按此地址进栈 else s.V[--s.top[1]]=x; //栈1情形:栈顶指针先减1, 然后按此地址进栈 } 答案 int Dblpop(DblStack s,int i,SElemType x) {

文档评论(0)

1亿VIP精品文档

相关文档