【数据结构之链队列的基本运算】

来源:互联网 发布:ip网络座机怎样使用 编辑:程序博客网 时间:2024/04/29 20:00
//链队列的基本运算public class LinkQueue {//(1)置空队void InitQueue(LinkQueue *Q){Q->front=Q->rear=NULL;}//(2)判断空intQueueEmpty(LinkQueue *Q){return Q->front==NULL && Q->rear->rear==NULL;}//(3)入列void EnQueue(LinkQueue *Q,DataType x){//将元素X插入链队列尾部QueueNode *p = (QueueNode*)malloc(sizeof(QueueNode));//申请新结点p->data=x;p->next=NULL;if(QueueEmpty(Q)){Q->front=Q->reap=p;//将P插入队列}else{//将P插入非空队列Q->rear->next=p;Q->rear=p;}}//(4)出列DataType DeQueue(LinkQueue *Q){DataType *x;QueueNode *p;if(QueueEmpty(Q)){//下溢Error("Queue underflow");}p = Q->front;x = p->data;Q->front = p->next;if(Q->rear=p){//列中只有一个结点Q->rear=null;}free(p);//释放头结点return x;//返回队头数据}//(5)取队头元素DataType QueFront(LinkQuue *Q){if(QueueEmpty(Q)){//下溢Error("Queue underflow");}else{return Q->front->data;}}}

0 0