[데이터 구조 엄 울 민 판] 순환 대기 열 기본 조작
3237 단어 데이터 구조
형식 정 의 는 링 모델 로 대기 열 을 실현 합 니 다. 각 데이터 구성원 의 의 미 는 다음 과 같 습 니 다. front 지정 팀 의 첫 번 째 위 치 는 하나의 요 소 를 삭제 하면 front 를 시계 방향 으로 이동 합 니 다.rear 는 요소 가 삽입 할 위 치 를 가리 키 며 요 소 를 삽입 하면 rear 를 시계 방향 으로 이동 합 니 다.count 는 대기 열 에 있 는 요소 의 개 수 를 저장 합 니 다. count 가 MaxQSize 와 같 을 때 대기 열 에 요 소 를 삽입 할 수 없습니다.대기 시간: count = 0 대기 시간: count = MaxQ Size \ # define QueueSize 100 / / 이 값 은 구체 적 인 상황 에 따라 typedef char DataType 을 정의 해 야 합 니 다. /DataType 의 유형 은 type: def struct {int front; / 헤드 포인터 에 의존 합 니 다.
/* : ( )
:
:11-17
: 2320417326*/
#include
#include
using namespace std;
#define T 1
#define F 0
#define OK 1
#define ERROR 0
#define MaxSize 10
typedef int Status ;
typedef int ElementType;
typedef int Position;
struct QNode {//
ElementType *Data; /* */
Position Front;
Position Rear;
};
typedef struct QNode *Queue;
Status InitQueue(Queue &Q)// MaxSize
{
Q = (Queue)malloc(sizeof(struct QNode));
if(!Q){
cout<Data = (ElementType *)malloc(MaxSize * sizeof(ElementType));
if(!Q->Data){
cout<Front = Q->Rear = 0;
return OK;
}
bool IsFull(Queue Q)//
{
return ((Q->Rear+1)%MaxSize == Q->Front);
//if(((Q->Rear+1)%Q->MaxSize) == Q->Front){
// return OK;
// }
// else
// return ERROR;
}
int IsEmpty( Queue Q )//
{
if(Q->Front == Q->Rear){
return OK;
}
else{
return ERROR;
};
}
int EnQueue(Queue &Q,ElementType e)//
{
if ( IsFull(Q) ) {
cout<Rear = (Q->Rear+1)%MaxSize;
Q->Data[Q->Rear] = e;
cout<Front =(Q->Front+1)%MaxSize;
e=Q->Data[Q->Front];
return OK;
}
}
Status DestoryQueue(Queue &Q){//
free(Q->Data);
free(Q);
cout<Data[MaxSize]={0};
Q->Front=Q->Rear=-1;
cout<Data[Q->Front+1];
return OK;
}
int QueueLength(Queue Q){//
return (Q->Rear - Q->Front + MaxSize) % MaxSize;
}
Status QueueTraverse(Queue Q){//
int i;
int t;
t=Q->Rear;
if(IsEmpty(Q)){
cout<Front =(Q->Front+1)%MaxSize;
cout<Data[Q->Front]<Front=0;
Q->Rear=t;
return T;
}
void Menu()//
{
cout<>i;
switch(i){
case 1:{
ClearQueue(Q);
break;
}
case 2:{
if(IsEmpty(Q))
cout<>e;
if ( IsFull(Q) )
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.