데이터 구조지식 포인트대열
//
typedef struct
{
elemType data[maxSize];
int front, rear;
}queue;
//
typedef struct Node
{
elemType data;
Node *next;
};
typedef struct queue
{
Node *front;
Node *rear;
};
대열 의 정 의 를 통 해 알 수 있 듯 이 대열 은 선착순 으로 데 이 터 를 저장 하 는 것 외 에 두 개의 지침 이 필요 하 다. 각각 팀 의 머리 와 팀 의 꼬리 를 대표 해 야 한다.
2. 진 팀 출전 조작
팀 을 나 가 는 동작 은 팀 의 머리 지침 을 한 명 뒤로 이동 시 키 고, 팀 에 들 어가 서 조작 하면 팀 의 꼬리 지침 을 한 명 뒤로 이동 시킨다.
순차 저장 대기 열
대열 에 들어가다
bool enterQueue(queue &q, elemType data)
{
if(q.rear == maxSize)
return false;
// ,
q.rear++;
q.data[q.rear] = data;
return true;
}
대열 에 나가다
elemType outQueue(queue &q)
{
//
if(q.front == q.rear)
return -9999;
// ,
return q.data[q.front++];
}
링크 저장 큐
대열 에 들어가다
bool enterQueue(queue &q,elemType e)
{
Node *p;
p = (Node *)malloc(sizeof(Node));
p->data = e;
p->next = NULL;
//
q.rear->next = p;
//
q.rear = p;
return true;
}
대열 에 나가다
elemType outQueue(queue &q)
{
//
if(q.front == q.rear)
return -999;
elemType e;
e = q.front->next->data;
//
Node *p = q.front->next;
q.front->next = p->next;
//
free(p);
return e;
}
3. 특수 대기 열 - 순환 대기 열과 양단 대기 열
순환 대기 열 만 토론 합 니 다.순환 대기 열 은 순서 표를 기반 으로 합 니 다. 일반 대기 열과 다른 것 은?
// , , 0
front = (front + 1) % maxSize;
문제
//
length = q.rear - q.front;
//
length = (q.rear - q.front + maxSize) % maxSize;
일반 대기 열 과 달리 순환 대기 열 에 q. rear < q. front 가 존재 하 는 경우 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.