首页 > 代码库 > 不带头结点的链式队列进出队操作
不带头结点的链式队列进出队操作
/* 不带头结点的链式队列进出队操作 */ #include <stdio.h> #include <stdlib.h> #define ElementType int typedef struct QNode *Queue; typedef struct Node{ ElementType Data; struct Node *Next; }; typedef struct QNode{ struct Node *front; struct Node *rear; }; void InintQueue(Queue &PtrQ){//虽然是指针,但是没赋值之前也不能乱指 PtrQ = (Queue)malloc(sizeof(struct QNode)); PtrQ->front=PtrQ->rear=NULL; } bool EnQueue(Queue PtrQ, ElementType X){ struct Node *RearCell = PtrQ->rear; struct Node *Tmp = (struct Node *)malloc(sizeof(struct Node)); Tmp->Data = http://www.mamicode.com/X;"队列为空\n"); return 1; } FrontCell = PtrQ->front; if(PtrQ->front==PtrQ->rear)//若队列中只有一个元素 PtrQ->front=PtrQ->rear=NULL;//删除后置空 else PtrQ->front = PtrQ->front->Next; FrontElem = FrontCell->Data; free(FrontCell); return FrontElem; } Is_EmptyQ(Queue PtrQ){ return PtrQ->front==NULL; } int main(){ Queue PtrQ; InintQueue(PtrQ); for(int i = 0;i<10;i++) EnQueue(PtrQ,i); while(!Is_EmptyQ(PtrQ)) printf("%d\n",DeleteQ(PtrQ)); return 0; }
不带头结点的链式队列进出队操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。