正在加载图片...
if (Q front==Q rear) return TRUE e⊥se return False 功能:进队列操作 ★输入:队列对象Q的指针,数据元素e 输出:成功时返回OK int EnQueue( LinkQueue*Q, ElemType e)/*进队列*/ Q-rear->next=( QueuePtr) malloc( sizeof( QNode);/*创建新结点* if(Q->rear->next=nULL exit(OVERFLOW) Q->rear=Q->rear->next /*修改尾结点指针* Q-rear->data=e;Q-rear->next=NUL;/*新结点赋值* return oK /*亲幸春家**幸幸*幸亲***幸*容春幸*幸*亲亲幸幸*****春率亲幸*亲幸* 功能:出队操作 输入:队列对象S的指针 ★输出:成功时返回OK、通过数据元素指针e返回队首元素的值 空队列时返回 ERROR 本本本*幸举*幸**幸本本本**本****本本幸*客*家本率******幸本***/ int DeQueue( LinkQueue*Q, ElemType*e)/出队列*/ if( QueueEmpty(*Q)) return error;/*空队列,返回错误* p=Q->front->next /*p指向删除结点*/ *e=p->data /*取数据*/ Q-> front->next=p->next;/*修改队头指针*/ f(Q->rear==p)Q->rear=Q-> front;/*若删除结点为队尾结点 设置为空队列*/ free(p) return OK maino ElemType LinkQueue que /*定义队列对象que*/{ if (Q.front==Q.rear) return TRUE; else return FALSE; } /********************************************************** ** 功能:进队列操作 ** ** 输入:队列对象 Q 的指针,数据元素 e ** ** 输出: 成功时返回 OK ** **********************************************************/ int EnQueue(LinkQueue *Q, ElemType e) /*进队列*/ { Q->rear->next=(QueuePtr) malloc(sizeof(QNode)); /*创建新结点*/ if(Q->rear->next==NULL) exit(OVERFLOW); Q->rear=Q->rear->next; /*修改尾结点指针*/ Q->rear->data=e; Q->rear->next=NULL; /*新结点赋值*/ return OK; } /******************************************************************* ** 功能:出队操作 ** ** 输入:队列对象 S 的指针 ** ** 输出: 成功时返回 OK、通过数据元素指针 e 返回队首元素的值 ** ** 空队列时返回ERROR ** *******************************************************************/ int DeQueue(LinkQueue *Q, ElemType *e) /*出队列*/ { QueuePtr p; if (QueueEmpty(*Q)) return ERROR; /*空队列,返回错误*/ p=Q->front->next; /*p指向删除结点*/ *e=p->data; /*取数据*/ Q->front->next=p->next; /*修改队头指针*/ if (Q->rear==p) Q->rear=Q->front;/*若删除结点为队尾结点, 设置为空队列*/ free(p); return OK; } _ main() { int i; ElemType elem; LinkQueue que; /*定义队列对象que*/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有