java 数据结构中栈和队列的实例详解

栈和队列是两种重要的线性数据结构,都是在一个特定的范围的存储单元中的存储数据。与线性表相比,它们的插入和删除操作收到更多的约束和限定,又被称为限定性的线性表结构。栈是先进后出FILO,队列是先进先出FIFO,但是有的数据结构按照一定的条件排队数据的队列,这时候的队列属于特殊队列,不一定按照上面的原则。
实现栈:采用数组和链表两种方法来实现栈
链表方法:
package com.cl.content01;
/*
* 使用链表来实现栈
*/
public class Stack<E> {
Node<E> top=null;
public boolean isEmpty(){
return top==null;
}
/*
* 出栈
*/
public void push(E data){
Node<E> nextNode=new Node<E>(data);
nextNode.next=top;
top=nextNode;
}
/*
* 出栈
*/
public E pop(){
if(this.isEmpty()){
return null;
}
E data =top.datas;
top=top.next;
return data;
}
}
/*
* 链表
*/
class Node<E>{
Node<E> next=null;
E datas;
public Node(E datas){
this.datas=datas;
}
}
实现队列:同栈一样
链表方法:
package com.cl.content01;
public class MyQueue<E> {
private Node<E> head=null;
private Node<E> tail=null;
public boolean isEmpty(){
return head==null;
}
public void put(E data){
Node<E> newNode=new Node<E>(data);
if(head==null&&tail==null)
head=tail=newNode;
else
tail.next=newNode;
tail=newNode;
}
public E pop(){
if(this.isEmpty())
return null;
E data=head.data;
head=head.next;
return data;
}
public int size(){
int n=0;
Node<E> t=head;
while(t!=null){
n++;
t=t.next;
}
return n;
}
public static void main(String[] args) {
MyQueue<Integer> q=new MyQueue<Integer>();
q.put(1);q.put(3);q.put(2);
System.out.println(q.pop());
System.out.println(q.size());
System.out.println(q.pop());
}
}
class Node<E>{
Node<E> next=null;
E data;
public Node(E data){
this.data=data;
}
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本能帮助到大家,谢谢大家对本站的支持!
# java
# 数据结构中栈和队列
# java栈和队列的实现
# java 数据结构之栈与队列
# Java深入了解数据结构之栈与队列的详解
# Java 栈和队列的相互转换详解
# Java栈和基础队列的实现详解
# 一起来学习Java的栈和队列
# Java 栈与队列实战真题训练
# Java 栈与队列超详细分析讲解
# Java使用跳转结构实现队列和栈流程详解
# Java线性结构中栈、队列和串的基本概念和特点详解
# Java常见的数据结构之栈和队列详解
# Java 栈和队列的交互实现
# 链表
# 数据结构
# 两种
# 来实现
# 都是
# 如有
# 线性表
# 被称为
# 在一
# 谢谢大家
# 疑问请
# 这时候
# public
# package
# cl
# gt
# Node
# Stack
# lt
# brush
相关文章:
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
seo网站制作优化,网站SEO优化步骤有哪些?
如何配置支付宝与微信支付功能?
建站之星展会模板:智能建站与自助搭建高效解决方案
建站之星×万网:智能建站系统+自助建站平台一键生成
家庭建站与云服务器建站,如何选择更优?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在搬瓦工VPS快速搭建网站?
如何正确下载安装西数主机建站助手?
建站主机与虚拟主机有何区别?如何选择最优方案?
如何登录建站主机?访问步骤全解析
用v-html解决Vue.js渲染中html标签不被解析的问题
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何在阿里云高效完成企业建站全流程?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何挑选最适合建站的高性能VPS主机?
建站之星代理平台如何选择最佳方案?
如何通过WDCP绑定主域名及创建子域名站点?
香港服务器租用每月最低只需15元?
内部网站制作流程,如何建立公司内部网站?
,网站推广常用方法?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
如何确保FTP站点访问权限与数据传输安全?
如何快速登录WAP自助建站平台?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
网站制作话术技巧,网站推广做的好怎么话术?
如何快速查询网址的建站时间与历史轨迹?
清除minerd进程的简单方法
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
Swift开发中switch语句值绑定模式
制作网站怎么制作,*游戏网站怎么搭建?
建站之星3.0如何解决常见操作问题?
Bpmn 2.0的XML文件怎么画流程图
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
建站之星如何开启自定义404页面避免用户流失?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
免费ppt制作网站,有没有值得推荐的免费PPT网站?
网站制作的步骤包括,正确网址格式怎么写?
开心动漫网站制作软件下载,十分开心动画为何停播?
如何在云主机快速搭建网站站点?
PHP 500报错的快速解决方法
如何快速搭建高效可靠的建站解决方案?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Python如何创建带属性的XML节点
C++如何使用std::optional?(处理可选值)
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何快速查询域名建站关键信息?
*请认真填写需求信息,我们会在24小时内与您取得联系。