데이터 구조 학습 기록 (7) - 체인 대기 열
3526 단어 데이터 구조 학습 소감체인 큐
그래서 체인 대기 열 이 나 타 났 습 니 다.
단일 체인 시트 로 정 의 된 헤드 포인터 가 존재 하 는 대기 열 을 보 여 줍 니 다.
내 가 쓴 코드 는 다음 과 같다.
#ifndef CIRCLE_H
#define CIRCLE_H
typedef int ElemType;
//
typedef struct LinkQueueNode
{
ElemType data;
Node next;
} LinkNode,*Node;
//
struct LinkQueue
{
Node rear,front;
};
//
void InitLinkQueue(LinkQueue &Q)
{
Q.rear=Q.front=(Node)malloc(sizeof(LinkNode));//
Q.rear->next=null;
}
//
bool LinkQueueEmpty(LinkQueue Q)
{
if(Q.front==Q.rear)
return true;
else
return false;
}
//
bool EnLinkQueue(LinkQueue &Q,ElemType x)
{
Q.rear->next=(Node)malloc(sizeof(LinkNode)); // next
if(Q.rear->next) //
{
Q.rear=Q.rear->next; //
Q.rear->next=null; // next
return true;
}
else // ,
{
cout<next->data; //
Node p;
p=Q.front->next; //p
if(p->next) //
{
Q.front->next=p->next; // , p->next
}
else
{
Q.rear=Q.front; // ,
Q.front->next=null; // next
}
free(p); // p ( )
}
}
//
bool GetLinkQueueHead(LinkQueue Q,ElemType &x)
{
if(LinkQueueEmpty())
return false;
else
{
x=Q.front->next->data;
return true;
}
}
#endif
체인 대기 열 이 꽉 찬 상황 이 나타 나 지 않 으 면 동적 으로 메모 리 를 신청 하여 공간의 낭 비 를 초래 하지 않 지만 지침 을 저장 할 추가 공간 이 필요 하고 지침 설정 이 무시 되면 출입 팀 의 조작 시간 지출 이 급증 하 는 것 이 단점 이다.
이 대기 열 은 순환 링크 를 사용 하거나 양 방향 링크 등 다른 링크 구 조 를 사용 하여 실현 할 수 있다.
흔히 볼 수 있 는 데이터 구조 시험 문제 에서 흔히 볼 수 있 는 문 제 는 특정한 링크 구조 (단일 양 방향 과 순환 여부, 그리고 서로 다른 지침 이 존재 하 는 각종 조합) 를 제시 하고 특정한 데이터 구조 에 적합 하 냐 고 물 으 면 데이터 구조 에 필요 한 조작 과 결합 하여 이 물리 구조 가 완성 되 거나 완 성 된 시간 지출 이 합 리 적 인지 판단 해 야 한다.
예 를 들 어 대기 열 에 있어 체인 식 저장 소 를 사용 하면 표 두 위 치 는 팀 의 머리 위치 이 고 표 꼬리 위 치 는 팀 의 꼬리 위치 이다.대기 열 에서 진행 해 야 할 일반적인 작업 은 팀 에서 나 오 는 것 (팀 에서 요 소 를 삭제 하 는 것) 과 팀 에 들 어 가 는 것 (표 끝 에 요 소 를 추가 하 는 것) 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 학습 기록 (7) - 체인 대기 열끝 점 의 next 를 새로 추 가 된 노드 주소 로 설정 하고 rear (꼬리 포인터) 를 rear - > next (새 노드 주소) 로 설정 한 다음 에 새로운 노드 next 를 비 웁 니 다.그래서 가장 좋 은...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.