대기 열 및 주의사항

대열
대기 열 주의사항
C++언어 에 서 는 우선 대기 열 을 사용 하여 lambda 표현 식 을 직접 구축 하고 익명 함수 포인터 를 사용 합 니 다.자바 비교 함수 의 반환 값 은 bool 형 이 아니 라 정형 일 수 밖 에 없습니다.
순환 대기 열의 주의사항
팀 이 비 었 을 때,머리 꼬리 지침 은 같은 팀 이 꽉 찼 을 때,머리 지침 은 마침 꼬리 지침 후 1 위 에 들 어 갔 을 때,꼬리 지침 이 1 을 더 했 을 때,머리 지침 에 1 쌍 의 Maxsize 를 더 한 것 은 순환 대기 열 이기 때 문 이 며,넘 치 는 것 을 방지 하기 때문이다.
대열 의 실현 방법
(1)배열 을 통 해 하나의 대기 열 을 실현 한다.
(2)집합 을 통 해 하나의 대 열 을 실현 한다.
(3)두 개의 스 택 을 통 해 하나의 대기 열 을 실현 한다.
대기 열 구현 코드
package cn.goktech.queue;

/**
 *   
 * 1.boolean add(T t) 	  
 * 2.T t offer() 		  
 * 3.boolean peek() 	      
 * @author Administrator
 *
 */
/**
 * @author Administrator
 *
 * @param 
 */
/**
 * @author Administrator
 *
 * @param 
 */
public class MyQueue<T> {
	private int size;
	private int rear;//  
	private int front;//  
	private Object[] data;
	private int length;
	
	/**
	 *     
	 */
	public MyQueue() {
		this.size=0;
		this.rear=-1;//   -1
		this.front=0;//   0
		data=new Object[10];
		this.length=10;
	}
	
	/**
	 *   
	 * @return boolean
	 */
	public boolean add(T t) {
		if (size==length) {
			return false;
		}else {
			data[++rear]=t;
			size++;
			return true;
		}
	}
	
	/**
	 *   
	 * @return t     
	 */
	public T offer() {
		if (size==0) {
			return null;
		}else {
			T t=(T)data[front++];
			if (front==rear) {
				front=0;
				rear=-1;
			}
			return t;
		}
	}
	
	/**
	 *       
	 * @return boolean
	 */
	public boolean peek() {
		if (size==0) {
			return false;
		}else {
			T t=(T)data[front];
			System.out.println(t);
			return true;
		}
	}
	
	/**
	 *        
	 * @return
	 */
	public int size() {
		return this.size;
	}
	
	public static void main(String[] args) {
		MyQueue<String> sQueue=new MyQueue<>();
		sQueue.add("1");
		sQueue.add("2");
		sQueue.peek();
	}
}

좋은 웹페이지 즐겨찾기