栈和队列是有操作限制的线性表。 栈是一种只允许在一端进行插入或删除的线性表。
1、栈的操作端通常被称为栈顶,另一端被称为栈底。 2、栈的插入操作称为进栈(压栈|push);栈删除操作称为出栈(弹栈|pop)。
顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。
我们可以围绕栈的4个元素来实现栈:
2状态:是否栈空;是否栈满。
2操作:压栈push;进栈pop。
package test;
import org.junit.Test;
public class test {
@Test public void fun(){ //初始化栈(char类型) SqStack<Character> stack = new SqStack<Character>(10); //2状态 System.out.println("栈是否为空:"+stack.isNull()); System.out.println("栈是否已满:"+stack.isFull()); //2操作 //依次压栈 stack.push('a'); stack.push('b'); stack.push('c'); //依次弹栈 System.out.println("弹栈顺序:"); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); }}
package test;
import org.junit.Test;
public class test {
@Test public void fun(){ LinkStack<Character> ls = new LinkStack<Character>(); //1状态 System.out.println("栈是否为空:"+ls.isNull()); //2操作 //依次压栈 ls.push(new LinkNode<Character>('a')); ls.push(new LinkNode<Character>('b')); ls.push(new LinkNode<Character>('c')); //依次弹栈 System.out.println("弹栈顺序:"); System.out.println(ls.pop().getData()); System.out.println(ls.pop().getData()); System.out.println(ls.pop().getData()); }}
true false