java中的栈(利用数组实现栈)

网友投稿 264 2022-09-17

java中的栈(利用数组实现栈)

java中的栈(利用数组实现栈)

栈的介绍

1、栈的英文名(Stack)2、先入后出的有序列表3、限制元素的插入和删除只能在线性表的同一段进行的特殊线性表。允许插入和删除的一段称为栈顶(top),另外固定的一段为栈底(bottom)4、最先放入的元素在栈底,最后放入的元素在栈顶。最后放入的元素最先被删除,最先放入的最后被删除。

入栈操作,当有数据加入到栈时,top++;stack[top]=data; 出栈操作,int val=stack[top];top–;return val;

举例

设置top的初始值为-1。如果设置为整数或者0,则默认栈有大小。此处使用数组实现栈,数组中的索引0代表第一个元素,如果默认为0,则默认栈的大小为1(数组的长度为1)。栈的大小是在构造函数初始化动态设置大小。

package com.zheng.demo4;public class MyStack { public static void main(String[] args) { Stack1 stack = new Stack1(6); stack.push(1); stack.push(2); stack.push(3); stack.push(4); stack.push(5); System.out.println("遍历栈:"); stack.list(); System.out.println("取出栈顶元素"); System.out.println(stack.pop()); }}//定义栈class Stack1 { private int maxSize;//定义栈的大小 private int top = -1;//栈顶 private int[] stack; //构造器初始化一个栈 public Stack1(int maxSize) { this.maxSize = maxSize; stack = new int[this.maxSize]; } //判断栈是否满 public boolean isFull() { return top == maxSize - 1; } //p判断栈空 public boolean isEmpty() { return top == -1; } //入栈 public void push(int data) { //先判断栈是否满 if (!isFull()) { top++; stack[top] = data; } else { System.out.println("栈满"); } } //出栈 public int pop() { //先判断栈是否为空 if (isFull()) { //抛出异常 throw new RuntimeException("栈空"); } int val = stack[top]; top--; return val; } //遍历栈 public void list() { for (int i = top; i >= 0; i--) { System.out.printf("stack[%d]=%d\n", i, stack[i]); } }}

在这里插入图片描述

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信最后一波红利?视频号打通“最后一公里”!
下一篇:混合云存储点燃万亿自动驾驶市场,加速产品落地
相关文章

 发表评论

暂时没有评论,来抢沙发吧~