队列的实现
程序员文章站
2022-03-08 09:17:15
...
闲来无事,把队列实现一下。同时也奉劝大家,没事多写写代码,看的教材再多,不自己打一遍代码,东西也不是自己的。
#include<stdio.h>
#include<stdlib.h>
typedef struct QNode//定义结点的结构
{
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front,rear;
}LinkQueue;
int initQueue(LinkQueue *q)//初始化操作
{
q->front=q->rear=(QueuePtr)malloc(sizeof(QNode));
if(!q->front)
{
return 0;
}
return 0;
}
int insertQueue(LinkQueue *q,int e)
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
q->rear->next=p;
q->rear=p;
return 0;
}
int DeleteQueue(LinkQueue *q,int *e)
{
QueuePtr p;
p=q->front->next;
*e=p->data;
q->front->next=p->next;
if(q->rear=p)
{
q->rear=q->front;
}
free(p);
}
int DestroyQueue(LinkQueue *q)
{
while(q->front)
{
q->rear=q->front->next;
free(q->front);
q->front=q->rear;
}
}
int main()
{
LinkQueue queue1;
LinkQueue *q1;
int *e;
int result;
e=&result;
q1=&queue1;
initQueue(q1);
insertQueue(q1,2);
insertQueue(q1,3);
insertQueue(q1,4);
insertQueue(q1,5);
insertQueue(q1,6);
printf("%d",q1->front->next->next->data);
DeleteQueue(q1,e);
printf("%d",*e);
DestroyQueue(q1);
return 0;
}
上一篇: ubuntu 删除新用户
下一篇: 图片验证码大全 - 西沙浪花白