用java代码编写堆栈 java堆栈和栈的图解

用java代码编写堆栈?

参看: 1 import java.util.*; 2 3 public class TestStack { 4 public static void main(String[] args) { 5 Stack stack = new Stack(); 6 7 for(int i = 0; i 10; i++) { 8 stack.push(new Integer(i)); 9 }1011 if(!stack.empty()) {12 System.out.println(stack.pop());13 }14 }15 }

创新互联公司是一家专注于成都网站制作、网站建设与策划设计,赣榆网站建设哪家好?创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:赣榆等地区。赣榆做网站价格咨询:18982081108

Java 堆栈Stack使用

java中stack的使用方法,堆栈是一种"后进先出"(LIFO) 的数据结构, 只能在一端进行插入(称为"压栈") 或删除 (称为"出栈")数据的操作,下面看示例:

JAVA 中,使用 java.util.Stack 类的构造方法创建对象。

public class Stack extends vector

构造方法 : public Stack() 创建一个空 Stack。

方法:

1. public push (item ) 把项 压入栈顶。其作用与 addElement (item ) 相同。

参数 item 压入栈顶的项 。 返回: item 参数 ;

2. public pop () 移除栈顶对象,并作为函数的值 返回该对象。

返回:栈顶对象(Vector 对象的中的最后一项)。

抛出异常 : EmptyStackException 如果堆栈式空的 。。。

3. public peek() 查看栈顶对象而不移除它。。

返回:栈顶对象(Vector 对象的中的最后一项)。

抛出异常 : EmptyStackException 如果堆栈式空的 。。。

4. public boolean empty (测试堆栈是否为空。) 当且仅当堆栈中不含任何项时 返回 true,否则 返回 false.

5. public int search (object o) 返回对象在堆栈中位置, 以 1 为基数, 如果对象 o是栈中的一项,该方法返回距离 栈顶最近的出现位置到栈顶的距离; 栈中最上端项的距离为 1 。

用java实现数据结构“栈

Java栈的实现

public class MyStack { //定义一个堆栈类

int[] array; //用int数组来保存数据,根据需要可以换类型

int s_size; //定义堆栈的宽度

public MyStack(int i){ //定义一个带参数构造器

array=new int[i]; //动态定义数组的长度

s_size=0; //堆栈的默认宽度为0

}

public MyStack(){ //默认构造器

this(50); //默认构造器可容纳50个元素

}

public void push(int i){ //压栈

array[this.s_size]=i;

this.s_size++;

}

public int pop(){ //从堆栈中取元素,从栈顶开始取

if(this.s_size!=0){

int t=array[s_size-1]; //用中间变量保存栈顶的元素

array[s_size-1]=0; //取完元素该位置设为0

s_size--; //栈的大小减1

return t; //返回栈顶元素

}else{

System.out.println("This stack is empty"); //当栈为空时显示提示信息,返回0

return 0;

}

}

public boolean isEmpty(){ //判断栈是否为空

return this.s_size==0;

}

public int top(){ //从栈顶取值,功能和 pop() 方法一样

if(!this.isEmpty()){

int t=array[this.s_size-1];

array[this.s_size-1]=0;

this.s_size--;

return t;

}else{

System.out.println("This stack is empty!");

return 0;

}

}

public void printAll(){ //打印出堆栈中的所有元素的值,不是取出,元素依然在堆栈里

if(!this.isEmpty()){

for(int i=this.s_size - 1;i=0;i--){

System.out.println(array[i]);

}

}

}

//下面是测试代码

public static void main(String[] args){

MyStack stack=new MyStack();

stack.push(4);

stack.push(5);

stack.push(6);

stack.push(7);

//System.out.println(stack.isEmpty());

stack.printAll();

System.out.println("===========");

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

System.out.println(stack.top());

}

}

用一维整数数组实现数据结构中的堆栈(Stack)。(用java语言)

public class IntStack {

private int[] stack;

private int top;

/**

*初始化栈,传入一个非负的整数,否则抛出一个错误

*/

public IntStack(int size) throws StackErrorException{

if(size0){

throw new StackErrorException("错误的大小");

}

init(size);

}

private void init(int size) {

stack = new int[size];

top = 0;

}

/**

*判断栈是否为空,true则为空,反之则反

*/

public boolean isEmpty(){

return top==0;

}

/**

*判断栈是否已满,true则已满,反之则反

*/

public boolean isFull(){

return top==stack.length;

}

/**

*向栈顶添加元素,满则抛出异常

*/

public void push(int value) throws StackErrorException{

if(isFull()){

throw new StackErrorException("栈已满");

}

stack[top++] = value;

}

/**

*移除栈顶元素并返回,空则抛出异常

*/

public int pop() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已到栈底!");

}

return stack[--top];

}

/**

*返回栈顶元素,空则抛出异常

*/

public int peek() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已在栈底!");

}

return stack[top-1];

}

/**

*返回栈大小

*/

public int size(){

return stack.length;

}

class StackErrorException extends Exception{

public StackErrorException(String msg) {

super(msg);

}

}

}


当前文章:用java代码编写堆栈 java堆栈和栈的图解
文章链接:http://scyanting.com/article/dosigig.html