日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java实现顺序栈_Java实现顺序栈原理解析

發布時間:2023/12/15 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现顺序栈_Java实现顺序栈原理解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要介紹了java實現順序棧原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

什么是棧

1.棧的英文是stack

2.棧是一個先入后出的有序列表

3.棧是限制線性表元素的插入和刪除只能在線性表的同一端進行的一種特殊的線性表,允許插入和刪除的一端是,為變化的一端,成為棧頂,另外的一端為固定的一端為棧底

EVBhnjgy

4.棧的定義可知,最先放入棧中的元素在棧底,最后放入的元素在棧頂,而刪除的情況剛好相反,最后放入的元素先刪除,最先放入的元素后刪除

棧的應用場景

1.子程序的調用,在跳向子程序之前會先將下一條指令的地址存放在堆棧中,直到子程序執行后再將地址取出,最后回到原來的程序之中

2.遞歸的調用,和子程序的調用類似,只是出了存儲下一個指令的地址外,也將參數、區域變量、等數據壓入棧中

3.表達式的轉換與求值

4.二叉樹的遍歷

5.圖形的深度優先搜索

代碼

package stack;

public class ArrayStack {

private int maxSize;//最大值

private int[] stack;//棧

private int top=-1;//棧頂

//構造器

public ArrayStack(int maxSize) {

this.maxSize=maxSize;

stack=new int[this.maxSize];

}

//棧滿

public boolean isFull() {

return top==maxSize-1;

}

//棧空

public boolean isEmpty() {

return top==-1;

}

//入棧-push

public void push(int value) {

//先判斷是否棧滿了

if(isFull()) {

System.out.println("棧已經滿了~");

return;

}else {

top++;

stack[top]=value;

}

}

//出棧-pop

public int pop() {

if(isEmpty()) {

throw new RuntimeException("棧已經空了~");

}

int value=stack[top];

top--;

return vaEVBhnjgylue;

}

//遍歷棧

public void list() {

if(isEmpty()) {

System.out.println("???#xff0c;沒有數據~");

}

for(int i=top;i>=0;i--) {

System.out.printf

測試類

package stack;

import java.util.Scanner;

public class TestArrayList {

public static void main(String[] args) {

// TODO Auto-generated method stub

ArrayStack stack=new ArrayStack(4);

String key="";

boolean loop=true;

Scanner scanner=new Scanner(System.in);

while(loop) {

System.out.println("show:顯示棧");

System.out.println("exit:退出測試");

System.out.println("push:壓棧");

System.out.println("pop:出棧");

System.out.println("請輸入你的選擇:");

key=scanner.next();

switch (key) {

case "show":

stack.list();

break;

case "push":

System.out.println("請輸入一個數:");

int value=scanner.nextInt();

stack.push(value);

break;

case "pop":

try {

int res=stack.pop();

System.out.printf("出棧的元素為:%d\n",res);

} catch (Exception e) {

// TODO: handle exception

System.out.println(e.getMessage());

}

編程客棧 break;

case "exit":

scanner.close();

loop=false;

break;

default:

break;

http://www.cppcns.com }

}

System.out.println("程序退出!");

}

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。

本文標題: Java實現順序棧原理解析

本文地址: http://www.cppcns.com/ruanjian/java/286570.html

總結

以上是生活随笔為你收集整理的java实现顺序栈_Java实现顺序栈原理解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。