Maison > Java > javaDidacticiel > Analyse de la pile et de la file d'attente dans la structure de données Java

Analyse de la pile et de la file d'attente dans la structure de données Java

黄舟
Libérer: 2017-09-28 09:44:13
original
1499 Les gens l'ont consulté

Cet article présente principalement des informations pertinentes sur des exemples détaillés de piles et de files d'attente dans les structures de données Java. Il est principalement implémenté à l'aide de tableaux et de tableaux linéaires. Les amis dans le besoin peuvent se référer à

java Explication détaillée de. exemples de piles et de files d'attente dans des structures de données

Les piles et les files d'attente sont deux structures de données linéaires importantes, qui stockent toutes deux des données dans une plage spécifique d'unités de stockage. Par rapport aux tableaux linéaires, leurs opérations d'insertion et de suppression subissent plus de contraintes et de limitations, également appelées structure de tableau linéaire restreinte. La pile est premier entré, dernier sorti, FILO, et la file d'attente est premier entré, premier sorti, FIFO. Cependant, certaines structures de données mettent les données en file d'attente selon certaines conditions. La file d'attente à ce moment est une file d'attente spéciale et ne suit pas nécessairement la file d'attente. principes ci-dessus.

Implémentez la pile : utilisez les méthodes de tableau et de liste chaînée pour implémenter la pile

Méthode de liste chaînée :


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;
}
}
Copier après la connexion

File d'attente d'implémentation : identique à la pile

Méthode de liste chaînée :


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;
}
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal