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; } }
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; } }
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!