Home >Java >javaTutorial >Analysis of stack and queue in Java data structure
This article mainly introduces relevant information on detailed examples of stacks and queues in Java data structures. It is mainly implemented using arrays and linear tables. Friends in need can refer to
java Detailed explanation of examples of stacks and queues in data structures
Stacks and queues are two important linear data structures, both of which store data in a specific range of storage units. Compared with linear tables, their insertion and deletion operations receive more constraints and limitations, which is also called a restricted linear table structure. The stack is first in, last out, FILO, and the queue is first in, first out, FIFO. However, some data structures queue data according to certain conditions. The queue at this time is a special queue and does not necessarily follow the above principles.
Implementing the stack: using two methods: array and linked list to implement the stack
Linked list method:
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; } }
Implement queue: same as stack
Linked list method:
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; } }
The above is the detailed content of Analysis of stack and queue in Java data structure. For more information, please follow other related articles on the PHP Chinese website!