c语言头结点存放元素,在带头结点的非空单链表中,头结点的存储位置由 指示, 首元素结点的...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

aikeni521

2017.04.11

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:59%    等级:8

已帮助:463人

#include using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -1 typedef int QElemType; typedef int status; typedef struct QNode{ QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; status InitQueue(LinkQueue &Q) { Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); Q.front->next=NULL; return OK; } status DestroyQueue(LinkQueue &Q) { while(Q.front) { Q.rear=Q.front->next; free(Q.front); Q.front=Q.rear; } return OK; } status EnQueue(LinkQueue &Q,QElemType e) { QueuePtr p; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) return OVERFLOW; p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; return OK; } status DeQueue(LinkQueue &Q,QElemType &e) { QueuePtr p; if(Q.front==Q.rear) return ERROR; p=Q.front->next; e=p->data; Q.front->next=p->next; if(Q.rear==p) Q.front==Q.rear; free(p); return OK; } status QueueLength(LinkQueue Q,QElemType &i) { QueuePtr p; i=0; if(Q.front==Q.rear) return ERROR; p=Q.front->next; while(p!=NULL) { i++; p=p->next; } return OK; } status GetHead(LinkQueue Q,QElemType &e) { QueuePtr p; if(Q.front==Q.rear) return ERROR; p=Q.front->next; e=p->data; return OK; } void QueueTraverse(LinkQueue Q) { QueuePtr p; int e; p=Q.front->next; while(p!=NULL) { e=p->data; cout<

110分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值