대기 열 및 주의사항
대기 열 주의사항
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();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.