如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
深入Java编程第021课算法及数据结构4栈下面我们用一个数组来实现一个最简单的栈.初始化栈栈被初始化时有一下几点:4.2空栈的判断空栈4.3满栈的判断空栈4.4入栈(压栈push)这里我们要注意入栈的步骤:14.5出栈(弹出pop)这里我们要注意出栈的步骤:14.6栈操作的安全publicclassMyStack{privateint[]stack;privatefinalintSIZE;privatefinalintBOTTOM=0;privateinttop;publicMyStack(intsize){super();SIZE=size;stack=newint[SIZE];top=BOTTOM;}publicsynchronizedvoidpush(intdata)throwsIllegalStateException{if(!isFull()){stack[top++]=data;}else{thrownewIllegalStateException("Stackisoverload.");}}publicsynchronizedintpop()throwsIllegalStateException{if(!isEmpty()){returnstack[--top];}else{thrownewIllegalStateException("Stackisempty.");}}publicbooleanisEmpty(){if(top!=BOTTOM){returnfalse;}else{returntrue;}}publicbooleanisFull(){if(top!=SIZE){returnfalse;}else{returntrue;}}publicstaticvoidmain(String[]args){MyStackms=newMyStack(20);ms.push(1);ms.push(2);ms.push(3);System.out.println("1thpop:"+ms.pop());ms.push(4);for(inti=0;i<ms.stack.length;i++){System.out.println(ms.stack[i]);}}}小结:1、栈是一种()的存储结构A)先进先出B)后进后出C)先进后出D)任意进出2、判断栈空的条件是()A)top==BOTTOMB)top==SIZEC)BOTTOM==SIZED)SIZE==03、判断栈满的条件是()A)top==BOTTOMB)top==SIZEC)BOTTOM==SIZED)SIZE==04、入栈的顺序()A)top++B)判断栈空C)判断栈满D)数据写入top指向的位置5、出栈的顺序()A)top--B)判断栈空C)判断栈满D)读出top指向的位置1、栈是一种(C)的存储结构A)先进先出B)后进后出C)先进后出D)任意进出2、判断栈空的条件是(A)A)top==BOTTOMB)top==SIZEC)BOTTOM==SIZED)SIZE==03、判断栈满的条件是(B)A)top==BOTTOMB)top==SIZEC)BOTTOM==SIZED)SIZE==04、入栈的顺序(CDA)A)top++B)判断栈空C)判断栈满D)数据写入top指向的位置5、出栈的顺序(BAD)A)top--B)判断栈空C)判断栈满D)读出top指向的位置试着使用链表来实现一个栈.使其具有栈的最基本的操作提示:栈顶定义在链表尾部操作会比较方便.