栈详讲(包含详细代码)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、栈(Stack)的介绍二、入栈出栈图解1.入栈2.出栈三、详细代码2.读入数据前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越
·
系列文章目录
一、栈(Stack)的介绍
1:栈是一个先入后出的有序列表;
2:栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom);
3:根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。
。
二、入栈出栈图解
1.入栈
2.出栈
三、详细代码
代码如下(java):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
import java.util.Scanner;
/**
* 数组实现栈
*/
public class ArrayStackDao {
public static void main(String[] args) {
//测试
//实例化一个栈
ArrayStack arrayStack = new ArrayStack(5);
//控制循环结束
Boolean logo = true;
//控制台输入
Scanner scanner = new Scanner(System.in);
//接收用户输入
String key = "";
while (logo){
System.out.println("rz:入栈");
System.out.println("cz:出栈");
System.out.println("bl:遍历栈");
System.out.println("exit:退出程序");
System.out.println("请输入你的选择:");
key = scanner.next();
switch (key){
case "rz":
System.out.println("请输入入栈的数字");
int value = scanner.nextInt();
arrayStack.pushStack(value);
break;
case "cz":
try {
arrayStack.popStack();
} catch (Exception e) {
System.out.println(e.getMessage());
}
break;
case "bl":
arrayStack.getStack();
break;
case "exit":
scanner.close();
logo = false;
break;
}
}
System.out.println("退出程序~~~");
}
}
/**
* 创建一个栈
*/
class ArrayStack{
private int maxSize; //栈的最大存储量
private int[] stack; //数组模拟栈
private int top = -1; //栈顶,初始化为-1
//构造器
public ArrayStack(int maxSize){
this.maxSize = maxSize;
stack = new int[this.maxSize];
}
//判断栈满
public Boolean isFull(){
return top == maxSize - 1;
}
//判断栈空
public Boolean isNull(){
return top == -1;
}
//入栈
public void pushStack(int value){ //value为入栈的数据
if (isFull()){
System.out.println("栈满");
return;
}
top++;
stack[top] = value;
}
//出栈
public int popStack(){
if (isNull()){
throw new RuntimeException("栈为空");
}
int value = stack[top];
top--;
return value;
}
//遍历栈
public void getStack(){
if (isNull()){
System.out.println("栈为空");
}
for (int i = top; i >= 0; i--) {
System.out.printf("stack[%d]=%d\n",i,stack[i]);
}
}
}

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)