Java之数据结构栈
作者:adminjiang发布时间:2021-07-09分类:计算机教程浏览:1079
导读:栈:一种仅允许在一端进行插入和删除操作的线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出...
栈:一种仅允许在一端进行插入和删除操作的线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来),允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO,Last In First Out)。
栈一次只允许操作一个数据项,即最后插入的数据项。
下面是用Java数组实现的顺序存储结构的栈。
package cn.zhf.list; class MyStack { private int maxSize;//定义栈的最大容量 private int[] stackArray;//以数组方式存储元素 private int top;//栈顶 //构造器,初始化 public MyStack(int x){ maxSize = x; stackArray = new int[x]; top = -1; } //插入元素 public void push(int x){ stackArray[++top] = x; } //删除顶部元素 public int pop(){ return stackArray[top--]; } //查看栈顶部元素 public int peek(){ return stackArray[top]; } //判断栈是否为空 public boolean isEmpty(){ return (top == -1); } //判断栈是否已满 public boolean isFull(){ return (top == maxSize-1); } }
下面是使用链表实现的栈。
package cn.zhf.list; //链表内存放的数据对象包装 public class Link { public int idata;//存放int 类型的数据 public double ddata;//double类型的数据 public Link next;//对下一个Link对象的引用 public Link(int id, double dd) { idata = id; ddata = dd; } public void diaplay() { System.out.println(idata + "," + ddata); } } //链表 public class LinkList { private Link first;//链表中保存的数据 public LinkList() { first = null; } public boolean isEmpty() { return (first == null); } //插入一个元素 public void insertFirst(int id, double dd) { Link link = new Link(id, dd); link.next = first;//next元素链接first first = link;//first元素链接link } //删除一个元素 public Link deleteFirst() { Link temp = first; first = first.next; return temp; } //显示链表的元素 public void displayLink() { Link current = first; while (current != null) { current.diaplay(); current = current.next; } } } //用链表实现的栈 public class LinkStack { private LinkList list; public LinkStack(){ list = new LinkList(); } public void push(int id,double dd){ list.insertFirst(id, dd); } public Link pop(){ return list.deleteFirst(); } public boolean isEmpty(){ return list.isEmpty(); } public void display(){ list.displayLink(); } public static void main(String[] args) { LinkStack ls = new LinkStack(); ls.push(1, 2.1); ls.push(2, 2.2); ls.push(3, 2.3); ls.display(); ls.pop(); ls.display(); } }
栈中的基本操作是:入栈、出栈和查看栈顶元素,以上两种实现方式不一样,但是方法名一样,实现的功能也相同,因此可以将Stack定义为一个接口,两个类分别实现这个接口,这样,对于调用者完全隐藏了实现的细节,但不影响使用,这大概就是接口的抽象优势。
广州北大青鸟依托北京大学雄厚资源,是北大青鸟华南地区就业示范校区,学校提供学历+技能+就业服务,主要开设热门课程java培训,UI设计培训,PHP培训,Web前端培训,软件开发编程培训等全程项目实战,免费就业推荐等,详情请点击右边的咨讯框咨询在线的老师,同时还可以获取免费的试听课程,欢迎咨询哦!!!
- 上一篇:自学Java开发路线
- 下一篇:Java基础之流程控制语句
相关推荐
- 东莞信息:麻涌麻涌人社分局开展2月份就业服务日活动
- 清远信息:清远市社保局开展南粤春暖社保护航志愿服务活动|||北大青鸟计算机培训中心
- 惠州信息:惠州新春招聘会打响2025就业服务开门红|||广州计算机编程培训
- 湛江信息:全市人力资源和社会保障干部作风提升年行动部署会议召开|||北大青鸟计算机培训中心
- 佛山信息:佛山市农业农村局佛山市人力资源和社会保障局2024年度乡村工匠专业人才职称评审工作|||广州市北大青鸟计算机职业培训学校
- 清远信息:南粤春暖共赴就业新征程清远市举办春季大型招聘活动|||计算机培训学校招生
- 江门信息:为什么要参加企业养老保险DeepSeek告诉你|||大学生计算机培训学校
- 东莞信息:香港劳工及福利局等代表团莅临东莞共促区域人才交流合作新发展|||大学生计算机培训学校
- 东莞信息:莞城街道2025年春风行动暨零工市场招聘活动|||计算机网络培训学校
- 汕头信息:招聘会开进高铁站汕头市南粤春暖专场招聘助力开门红|||计算机网络培训学校
- 计算机教程排行
-
- 1广州中考成绩公布,高中阶段学校录取控制分数线公布,普高最低控制线502分
- 2汕头信息:“公共就业服务进校园”粤东专场在汕头大学举行|||计算机网络培训学校
- 3汕头信息:2024年广东省公共就业服务进校园粤东片区专场活动诚邀各用人单位参会|||广州计算机编程培训
- 4清远信息:校企双向奔赴清远市人社部门携企赴省内外高校招才引智|||广州计算机编程培训
- 5江门信息:工伤保险缴费误区:最低工资非缴费基准,违规用人单位将面临法律风险!|||计算机软件培训学校
- 6惠州信息:“惠州市就业驿站巡礼”之惠阳新圩站|||大学生计算机培训学校
- 7汕尾信息:世界技能大赛获奖选手全省巡回宣讲交流活动走进汕尾|||电脑计算机编程培训学校
- 82024年大学生就业情况-IT行业仍是最向往的行业
- 9汕头信息:汕头市人力资源和社会保障局开展宪法宣传周活动|||北大青鸟计算机培训中心
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2025年2月 (26)
- 2024年12月 (15)
- 2024年11月 (45)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:清远市社保局开展南粤春暖社保护航志愿服务活动|||北大青鸟计算机培训中心
- 惠州信息:惠州新春招聘会打响2025就业服务开门红|||广州计算机编程培训
- 湛江信息:全市人力资源和社会保障干部作风提升年行动部署会议召开|||北大青鸟计算机培训中心
- 佛山信息:佛山市农业农村局佛山市人力资源和社会保障局2024年度乡村工匠专业人才职称评审工作|||广州市北大青鸟计算机职业培训学校
- 中山信息:中山市社会保险基金管理局失业保险待遇退回决定催告书送达公告|||广州计算机编程培训
- 清远信息:南粤春暖共赴就业新征程清远市举办春季大型招聘活动|||计算机培训学校招生
- 江门信息:为什么要参加企业养老保险DeepSeek告诉你|||大学生计算机培训学校
- 东莞信息:香港劳工及福利局等代表团莅临东莞共促区域人才交流合作新发展|||大学生计算机培训学校
- 东莞信息:莞城街道2025年春风行动暨零工市场招聘活动|||计算机网络培训学校
- 汕头信息:招聘会开进高铁站汕头市南粤春暖专场招聘助力开门红|||计算机网络培训学校