队列链式存储结构上的基本操作

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、链队列存储结构

typedef struct node{

elemtype data;

struct node *next;

}qnode;

typedef struct{

qnode *front;

qnode *rear;

}linkqueue;

二、基本操作的算法实现:

1.构建一个空的链队列

void initqueue(linkqueue *q ) {

q->front=q->rear=(qnode *)malloc(sizeof(qnode));

q->front->next=NULL;

}

2.进队列

void enqueue(linkqueue *q,elemtype e){

p=(qnode *)malloc(sizeof(qnode));

p->data=e;

p->next=NULL;

q->rear->next=p;

q->rear=p; }

3.出队列

status dequeue(linkqueue *q,elemtype e){ p=q->front->next;

e=p->data;

q->front->next=p->next;

if(q->rear==p) q->rear=q->front;

free(p);

return e; }

相关文档
最新文档