正在加载图片...
功能:进队列操作 输入:队列对象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 客水常水凇客*水水客本客*本水水水水水水凇称水水容水凇*本客水本客容水市客宗 nt DeQueue( Link Queue*Q, ElemType*e)/*出队列*/ QueuePtr p if( QueueEmpty(*Q)) return error;/*空队列,返回错误*/ p=Q- front→>next; /*p指向删除结点*/ >data /*取数据* Q-> front->next=p->next;/*修改队头指针*/ f(Q->rear=p)Q-rear=Q> front;/*若删除结点为队尾结点 设置为空队列*/ free retur maino int 1 ElemType el LinkQ *定义队列对象que*/ InitQueue(&que) /*队列que初始化*/ /*元素1进队列*/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*/ InitQueue(&que); /*队列que初始化*/ EnQueue(&que,1); /*元素1进队列*/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有