算法:队列的实现
Posted jmst
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法:队列的实现相关的知识,希望对你有一定的参考价值。
queue.h
#ifndef _QUEUE_H #define _QUEUE_H struct Node; typedef int ElementType; typedef struct Node *PtrToNode; typedef PtrToNode Queue; int IsEmpty(Queue Q); Queue CreateQueue(void); void MakeEmpty(Queue Q); void EnQueue(ElementType X,Queue Q); void DeQueue(Queue Q); PtrToNode Last(Queue Q); #endif struct Node { ElementType element; PtrToNode Next; };
queue.c
#include <stdlib.h> #include <stdio.h> #include "queue.h" int IsEmpty(Queue Q) { return Q->Next==NULL; } Queue CreateQueue(void) { PtrToNode Q; Q=malloc(sizeof(struct Node)); if(Q==NULL){ printf("out of space"); exit(1); } if(Q->Next!=NULL){ MakeEmpty(Q); } return Q; } void MakeEmpty(Queue Q) { PtrToNode P,temp; P=Q->Next; Q->Next=NULL; while(P!=NULL){ temp=P; P=P->Next; free(P); } } void EnQueue(ElementType X,Queue Q) { PtrToNode P,L; P=malloc(sizeof(struct Node)); if(P==NULL){ printf("out of space"); } P->element=X; L=Last(Q); L->Next=P; } PtrToNode Last(Queue Q) { PtrToNode P; P=Q; while(P->Next!=NULL){ P=P->Next; } return P; } void DeQueue(Queue Q) { PtrToNode P; if(Q->Next!=NULL){ P=Q->Next; Q->Next=P->Next; free(P); } }
以上是关于算法:队列的实现的主要内容,如果未能解决你的问题,请参考以下文章