데이터 구조 - 대기 열 - 대기 열 초기 화, 대기 열, 대기 열 머리 요 소 를 가 져 오고 대기 열 꼬리 요 소 를 가 져 오 며 대기 열 에 있 는 유효 요소 의 개 수 를 가 져 오고 빈 칸 을 판단 하 며 대기 열 을 소각 합 니 다.
2209 단어 데이터 구조
typedef QNode* QDataType;
// :
typedef struct QNode
{
struct QNode* pNext;
QDataType data;
}QNode;
//
typedef struct Queue
{
QNode *head; //
QNode *last; //
}Queue;
함수 기능 집합:
//
void QueueInit(Queue* q);
//
void QueuePush(Queue* q, QDataType data);
//
void QueuePop(Queue* q);
//
QDataType QueueFront(Queue* q);
//
QDataType QueueBack(Queue* q);
//
int QueueSize(Queue* q);
// , , 0
int QueueEmpty(Queue* q);
//
void QueueDestroy(Queue* q);
대기 열 초기 화:
//
void QueueInit(Queue* q)
{
q->head = q->last = NULL;
}
대기 열 끝 에 들 어 갑 니 다 (대기 열 에 들 어 갑 니 다):
// //
void QueuePush(Queue* q, QDataType data)
{
QNode *node = (QNode *)malloc(sizeof(QNode));
node->data = data;
node->pNext = NULL;
if (q->head == NULL)
{
q->head = node;
q->last = node;
}
else
{
q->last->pNext = node;
q->last = node;
}
}
파티 의 첫 번 째 대기 열 (대기 열):
// //
void QueuePop(Queue* q)
{
QNode* node = (QNode*)malloc(sizeof(QNode));
node = q->head;
free(q->head);
q->head = node;
// last
if (q->head == NULL) {
q->last = NULL;
}
}
대기 열 머리 요소 가 져 오기:
//
QDataType QueueFront(Queue* q)
{
return q->head->data;
}
파티 끝 요소 가 져 오기:
//
QDataType QueueBack(Queue* q)
{
return q->last->data;
}
대기 열 에 있 는 유효한 요소 갯 수 가 져 오기:
//
int QueueSize(Queue* q)
{
int size;
for (QNode* c=q->head ; c !=NULL; c=c->pNext)
{
size++;
}
return size;
}
띄 우기:
// , , 0
int QueueEmpty(Queue* q)
{
if (q->head == NULL)
return 1;
else
return 0;
}
대기 열 삭제:
//
void QueueDestroy(Queue* q)
{
QNode* node;
for ( node =q->head; node !=NULL; node=node->pNext)
{
free(node);
}
q->head = NULL;
q->last = NULL;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.