当前位置:首页>开发>正文

java中我创建了一个栈 在java中 怎么用数组去实现一个栈

2023-04-19 10:33:38 互联网 未知 开发

 java中我创建了一个栈 在java中 怎么用数组去实现一个栈

java中我创建了一个栈

当然是用迭代器打印的规范咯

1  栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出   的方式进行处理。
2  堆是栈的一个组成元素
3  heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。
4  stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高    向低减少的。

在java中 怎么用数组去实现一个栈?

用stack类实现

class MyStack {
private LinkedList list=new LinkedList()
public void push(Object o){
list.addFirst(o)
}
public Object pop(){
return list.removeFirst()
}
}

用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-- //栈的大小减 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 - 1i>=0i--){
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使用一个栈将十进制转换成二进制

晕了...。公有类名为Test,文件名是zhan.java,谁教你的?
public class ToBinary{
public static void main(String[] args){
Stack stack=new Stack()
int x=3456
while(x>0){
stack.push(x%2)
x/=2
}
while(!stack.isEmpty()){
System.out.print(stack.pop())
}
}
}
class Stack{
private int[] data
private int pointer
public Stack(){
data=new int[100]
pointer=0
}
public void push(int v){
data[pointer ]=v
}
public int pop(){
return data[--pointer]
}
public boolean isEmpty(){
return pointer==0
}
}

最新文章