「JAVA改变栈顶元素值」java stack获取栈顶元素

博主:adminadmin 2022-12-27 11:18:07 74

本篇文章给大家谈谈JAVA改变栈顶元素值,以及java stack获取栈顶元素对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

跪求用JAVA语言实现一个栈和一个队列,数据元素为double型。。。具体在问题补充里

public interface MyStackT {

/**

 * 判断栈是否为空

 */

boolean isEmpty();

/**

 * 清空栈

 */

void clear();

/**

 * 栈的长度

 */

int length();

/**

 * 数据入栈

 */

boolean push(T data);

/**

 * 数据出栈

 */

T pop();

}

public class MyArrayStackT implements MyStackT {

private Object[] objs = new Object[16];

private int size = 0;

@Override

public boolean isEmpty() {

return size == 0;

}

@Override

public void clear() {

// 将数组中的数据置为null, 方便GC进行回收

for (int i = 0; i  size; i++) {

objs[size] = null;

}

size = 0;

}

@Override

public int length() {

return size;

}

@Override

public boolean push(T data) {

// 判断是否需要进行数组扩容

if (size = objs.length) {

resize();

}

objs[size++] = data;

return true;

}

/**

 * 数组扩容

 */

private void resize() {

Object[] temp = new Object[objs.length * 3 / 2 + 1];

for (int i = 0; i  size; i++) {

temp[i] = objs[i];

objs[i] = null;

}

objs = temp;

}

@SuppressWarnings("unchecked")

@Override

public T pop() {

if (size == 0) {

return null;

}

return (T) objs[--size];

}

@Override

public String toString() {

StringBuilder sb = new StringBuilder();

sb.append("MyArrayStack: [");

for (int i = 0; i  size; i++) {

sb.append(objs[i].toString());

if (i != size - 1) {

sb.append(", ");

}

}

sb.append("]");

return sb.toString();

}

}

//栈的链表实现

public class MyLinkedStackT implements MyStackT {

/**

 * 栈顶指针

 */

private Node top;

/**

 * 栈的长度

 */

private int size;

public MyLinkedStack() {

top = null;

size = 0;

}

@Override

public boolean isEmpty() {

return size == 0;

}

@Override

public void clear() {

top = null;

size = 0;

}

@Override

public int length() {

return size;

}

@Override

public boolean push(T data) {

Node node = new Node();

node.data = data;

node.pre = top;

// 改变栈顶指针

top = node;

size++;

return true;

}

@Override

public T pop() {

if (top != null) {

Node node = top;

// 改变栈顶指针

top = top.pre;

size--;

return node.data;

}

return null;

}

/**

 * 将数据封装成结点

 */

private final class Node {

private Node pre;

private T data;

}

}

java栈的元素怎么设置

java.util.Stack 类的构造方法创建对象

这个类里面有这个方法

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

Java字符串插入和取栈顶元素的问题

1、最好先使用这个字符串作为参数构造一个StringBuilder,然后使用StringBuilder的插入字符方法插入你的字符,最后用toString得到字符串。

2、在方法的前面加个类型转化就可以了。

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

}

}

关于JAVA改变栈顶元素值和java stack获取栈顶元素的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。