python如何使用数组实现栈
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下python如何使用数组实现栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用数组实现栈自己实现一个栈
千家信息网最后更新 2025年02月01日python如何使用数组实现栈
小编给大家分享一下python如何使用数组实现栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
使用数组实现栈
自己实现一个栈,要求这个栈具有push()
、pop()
(返回栈顶元素并出栈)、peek()
(返回栈顶元素不出栈)、isEmpty()
、size()
这些基本的方法。
提示:每次入栈之前先判断栈的容量是否够用,如果不够用就用Arrays.copyOf()
进行扩容;
public class MyStack {
private int[] storage;//存放栈中元素的数组
private int capacity;//栈的容量
private int count;//栈中元素数量
private static final int GROW_FACTOR = 2;
//TODO:不带初始容量的构造方法。默认容量为8
public MyStack() {
this.capacity = 8;
this.storage=new int[8];
this.count = 0;
}
//TODO:带初始容量的构造方法
public MyStack(int initialCapacity) {
if (initialCapacity < 1)
throw new IllegalArgumentException("Capacity too small.");
this.capacity = initialCapacity;
this.storage = new int[initialCapacity];
this.count = 0;
}
//TODO:入栈
public void push(int value) {
if (count == capacity) {
ensureCapacity();
}
storage[count++] = value;
}
//TODO:确保容量大小
private void ensureCapacity() {
int newCapacity = capacity * GROW_FACTOR;
storage = Arrays.copyOf(storage, newCapacity);
capacity = newCapacity;
}
//TODO:返回栈顶元素并出栈
private int pop() {
count--;
if (count == -1)
throw new IllegalArgumentException("Stack is empty.");
return storage[count];
}
//TODO:返回栈顶元素不出栈
private int peek() {
if (count == 0){
throw new IllegalArgumentException("Stack is empty.");
}else {
return storage[count-1];
}
}
//TODO:判断栈是否为空
private boolean isEmpty() {
return count == 0;
}
//TODO:返回栈中元素的个数
private int size() {
return count;
}
}
验证:
MyStack myStack = new MyStack(3);myStack.push(1);myStack.push(2);myStack.push(3);myStack.push(4);myStack.push(5);myStack.push(6);myStack.push(7);myStack.push(8);System.out.println(myStack.peek());//8System.out.println(myStack.size());//8for (int i = 0; i < 8; i++) { System.out.println(myStack.pop());}System.out.println(myStack.isEmpty());//truemyStack.pop();//报错:java.lang.IllegalArgumentException: Stack is empty.
以上是"python如何使用数组实现栈"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
元素
容量
数组
方法
篇文章
内容
并出
不够
不怎么
个数
够用
大小
大部分
数量
更多
知识
行业
资讯
资讯频道
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
明日之后哪个服务器可以互通
怎么使用购买的服务器ip
国家网络安全董事长
横山职教中心软件开发
电脑软件开发w
梦幻西游如何挑选服务器
美国制裁俄罗斯数据库
我的世界怎么联机外地服务器
jsp数据库添加
charls数据库
网络安全保障中心是干什么
深圳华辰软件开发
大话西游2龙虎门服务器
怎么更改数据库修改密码
承接软件开发外包项目违法吗
黄浦区信息化软件开发哪家好
现代通信网络技术有哪些
web服务器安全目录
图像服务器
正在自动连接服务器
梅州进销存软件开发多少钱
重庆路渝网络技术有限公司
软件开发的服务哪家好
200人游戏至少要多大的服务器
应用软件开发有哪些专业
通州旧服务器回收公司
渭南网络技术服务
saas组织架构数据库表设计
左创互联网络科技有限公司
怎么查一个软件服务器