이 글에서는 주로 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 데이터 구조의 스택 및 큐 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!