순환 대기 열의 C 언어 구현 및 순환 링크 와 의 차이
\ # 순환 대기 열 은 일부 내장 형 소프트웨어 개발 에서 자주 사용 되 는 동시에 대기 열 은 매우 중요 한 데이터 구조 입 니 다.
#include
#include
#define Maxsize 20 //
typedef struct { //
int *base;
int front;
int rear;
}SqQueue;
int initQueue(SqQueue &Q){ //
Q.base=(int*)malloc(sizeof(int)*Maxsize);
if(!Q.base) return 0;
Q.front=0;
Q.rear=0;
return 1;
}
int EnQueue(SqQueue &Q,int e){ //
if((Q.rear+1)%Maxsize==Q.front){
printf("
");
// return 0;
}
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%Maxsize;
return 1;
}
int DeQueue(SqQueue &Q,int &e){ //
if(Q.front==Q.rear){
printf("
");
return 0;
}
e=Q.base[Q.front];
Q.front=(Q.front+1)%Maxsize;
return 1;
}
int gethead(SqQueue Q){ //
if(Q.front!=Q.rear){
return Q.base[Q.front];
}
}
int gettail(SqQueue Q){ //
if(Q.front!=Q.rear){
return Q.base[Q.rear-1]; // , ,
}
}
int main(){
int i=0;
int outnum=0; //
SqQueue Q;
initQueue(Q);
for(i=0;i<12;i++)
EnQueue(Q,i);
printf(" :%d ",gethead(Q));
printf(" :%d ",gettail(Q));
DeQueue(Q,outnum);
printf(" :%d",outnum);
}
순환 대기 행렬 과 순환 링크 의 차이
2 년 전 처음 공 부 를 시 작 했 을 때 총 점 이 잘 모 르 고 작년 에 진정한 '구' 학 을 시작 한 후에 야 깊이 이해 하고 구별 했다.(아, 지식 은 자기가 배우 고 싶 어서 배 우 는 깊이, 배 우 는 깊이 를 표현 하고 싶 어 요.)
순환 대기 열 은 대기 열의 순서 표시 와 실현 으로 순서 대기 열 에서 '가짜 넘 침' 문 제 를 해결 합 니 다.순환 링크 는 선형 표 에서 체인 식 으로 나타 내 는 것 으로 링크 로 실현 되 고 첫 번 째 로 연결된다.본질 적 으로 그들 두 사람 은 평행 이어서 아무런 관계 가 없다.하지만 논리 적 으로 는 고리 형 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.