순환 대기 열의 C 언어 구현 및 순환 링크 와 의 차이

데이터 구조 편: 순환 대기 열의 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 년 전 처음 공 부 를 시 작 했 을 때 총 점 이 잘 모 르 고 작년 에 진정한 '구' 학 을 시작 한 후에 야 깊이 이해 하고 구별 했다.(아, 지식 은 자기가 배우 고 싶 어서 배 우 는 깊이, 배 우 는 깊이 를 표현 하고 싶 어 요.)
순환 대기 열 은 대기 열의 순서 표시 와 실현 으로 순서 대기 열 에서 '가짜 넘 침' 문 제 를 해결 합 니 다.순환 링크 는 선형 표 에서 체인 식 으로 나타 내 는 것 으로 링크 로 실현 되 고 첫 번 째 로 연결된다.본질 적 으로 그들 두 사람 은 평행 이어서 아무런 관계 가 없다.하지만 논리 적 으로 는 고리 형 이다.

좋은 웹페이지 즐겨찾기