python如何使用数组实现栈
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,小编给大家分享一下python如何使用数组实现栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用数组实现栈自己实现一个栈
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
东莞定制冷库软件开发
监控搜索服务器
万方数据库全文直达为什么看不了
云盟互动网络技术
武汉电商网络安全维护代理品牌
酒店数据库规则
服务器ddr2内存条
青少年网络安全团日活动
办公软件开发合同
家用电脑如何设置为服务器
盐城应用软件开发创新服务
网络安全人员头像
服务器安全360
高青陶瓷软件开发
c语言高性能http服务器
网络安全证书短信
高级网络安全怎么用
储存蛋白质空间结构的数据库
计算机网络技术仿真试题
服务器备份系统
深圳智控网络技术
电功率课件软件开发
ip地址根域名服务器在哪
网络安全是为了保障
网络安全与数据合规业务
农信社软件开发
网络安全当前主要趋势
网络安全是如何影响我们的生活
动态分配ip地址的服务器是
蜂萝网络技术北京有限公司