重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

重做和撤销栈代码java java中撤销快捷键

用java实现数据结构“栈

Java栈的实现

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站建设、白碱滩网络推广、重庆小程序开发、白碱滩网络营销、白碱滩企业策划、白碱滩品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供白碱滩建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

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());

}

}

java怎么撤回上一步操作

不支持撤回上一步操作,可以通过调试器来查看之前的操作情况。

怎么用java代码实现栈内存?

使用java.util包中的Stack类创建一个栈对象

public Object push(Object data);输入数据,实现压栈

public Object pop();输出数据,实现弹栈

public boolean empty()判空

public Object peek();查看栈顶元素

可以去查查API嘛

我也是学java的,大家一起进步。

Java中实现栈时的问题----------Java高手请进

p2=p1不是Point对象赋值,而是引用赋值。这和C++不一样。

在java里边,p1、p2、point和temp都是引用,而不是对象本身,引用就象C++的指针。上面的程序中,p2=p1的结果是,p2指向的对象和p1相同,他们都指向了p1=new Point()语句创建的对象。而Point p2=new Point(); 创建的对象,因为p2不再引用它而变成垃圾,java会自动删除。

java的引用赋值就象C++的指针赋值,就类似C++程序:

Point * p1=new Point();

Point * p2=new Point();

p2=p1;

所以你上面的程序也有这个问题,temp=point;其实没什么用,效果把Point temp=new mypoint(); 创建的对象删除了,被压栈的对象还是point,所以去掉这两句,效果完全一样。

如果你想复制一个新对象压栈,应该用java的clone方法,

temp=point.clone();

不过Point必须实现Clonable接口,并且正确实现它。


分享标题:重做和撤销栈代码java java中撤销快捷键
链接地址:http://cqcxhl.com/article/ddjdicd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP