全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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 


相关文章: 家庭服务器如何搭建个人网站?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  岳西云建站教程与模板下载_一站式快速建站系统操作指南  广东企业建站网站优化与SEO营销核心策略指南  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何快速搭建响应式可视化网站?  实现虚拟支付需哪些建站技术支撑?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  大同网页,大同瑞慈医院官网?  网站app免费制作软件,能免费看各大网站视频的手机app?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  建站之星好吗?新手能否轻松上手建站?  如何配置IIS站点权限与局域网访问?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站之星云端配置指南:模板选择与SEO优化一键生成  香港服务器租用每月最低只需15元?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  实例解析Array和String方法  北京建设网站制作公司,北京古代建筑博物馆预约官网?  如何在云主机快速搭建网站站点?  建站之星24小时客服电话如何获取?  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何打造高效商业网站?建站目的决定转化率  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  音响网站制作视频教程,隆霸音响官方网站?  智能起名网站制作软件有哪些,制作logo的软件?  如何选择建站程序?包含哪些必备功能与类型?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何在万网主机上快速搭建网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  如何获取上海专业网站定制建站电话?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站之星如何助力网站排名飙升?揭秘高效技巧  如何通过西部建站助手安装IIS服务器?  营销式网站制作方案,销售哪个网站招聘效果最好?  如何选择CMS系统实现快速建站与SEO优化?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建设网站制作价格,怎样建立自己的公司网站?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  学校建站服务器如何选型才能满足性能需求?  如何在万网自助建站平台快速创建网站?  如何用PHP工具快速搭建高效网站?  临沂网站制作企业,临沂第三中学官方网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站之星如何实现PC+手机+微信网站五合一建站?  如何用西部建站助手快速创建专业网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。