栈是限制在表尾进行插入和删除操作的线性表。栈的主要特点是“后进先出”。允许插入、删除的这一端称为栈顶(Top),另一端称为栈底(Bottom)。
栈的运算包含
1.进栈
2.出栈
3.读栈顶元素
4. 判栈空
5. 判栈满
6. 显示栈元素
下面用Java实现一个简单的栈:
异步代码,更快。
package zieckey.datastructure.study.stack;
/**
* Demonstrates stacks
*
* @author
*/
public class StackX
{
private int maxSize; // size of stack array
private double[] stackArray;
private int top; // top of stack
public StackX( int maxSize )
{
this.maxSize = maxSize;// 设置数组大小
stackArray = new double[maxSize];// 创建数组
top = -1;// 还没有任何元素
}
public void push( double j )
{// 入栈
if ( isFull( ) )
{
System.out.println( "Cannot insert item " + j + "! The stack is full." );
} else
{
top++ ;
stackArray[top] = j;
}
}
public double pop()
{// 出栈
if ( isEmpty( ) )
{
System.out.println( "The stack is empty." );
return 0.0;
} else
{
return stackArray[top-- ];
}
}
public double peek()
{// 返回栈顶元素
return stackArray[top];
}
public boolean isEmpty()
{
return ( -1 == top );
}
public boolean isFull()
{
return ( maxSize - 1 == top );
}
}
|