데이터 구조의 창고 와 대기 열 (4)

대기 열 도 특수 한 선형 표 로 선진 적 으로 먼저 나 가 고 순서 저장 구조의 대기 열 에 배열 이 넘 치 는 상황 이 존재 하기 때문에 일반적으로 체인 저장 구 조 를 선택한다.
1. 헤더 파일 quue. h
typedef int ElemType;

typedef struct Node
{
	ElemType data;
	struct Node *next;
}QueueNode,*QueuePtr;

typedef struct NodeFlag
{
	QueuePtr front,rear;
}LinkQueue;

//    
bool CreateQueue(LinkQueue &Q);
//   
bool InQueue(LinkQueue &Q,ElemType e);
//   
bool OutQueue(LinkQueue &Q);
//    
bool print(LinkQueue Q);

2.queue.cpp
#include 
#include 
#include "queue.h"

bool CreateQueue(LinkQueue &Q)
{
	QueuePtr q;
	if(q=(QueuePtr)malloc(sizeof(QueueNode)))
	{
		q->data=NULL;
		q->next=NULL;
		Q.front=q;
		Q.rear=q;
		return true;
	}
	else
		return false;
}

bool InQueue(LinkQueue &Q,ElemType e)
{
	QueuePtr q;
	if(q=(QueuePtr)malloc(sizeof(QueueNode)))
	{
		q->data=e;
		q->next=NULL;
		Q.rear->next=q;
		Q.rear=q;
    	return true;
	}
	return false;
}
bool OutQueue(LinkQueue &Q)
{
	QueuePtr q;
	q=Q.front->next;
	Q.front->next=q->next;
	free(q);
	return true;
}

bool print(LinkQueue Q)
{
	QueuePtr q;
	q=Q.front->next;
	while(q)
	{
		printf("%d
",q->data); q=q->next; } printf("------------- -----------------
"); return true; }

3. 주 함수 main. cpp
#include 
#include "queue.h"

int main()
{
	LinkQueue Q;
	CreateQueue(Q);//    
	for(int i=1;i<=10;i++)
		InQueue(Q,i);
	print(Q);
	OutQueue(Q);
	print(Q);
	return 0;
}

좋은 웹페이지 즐겨찾기