数据结构-chap3-(2)队列.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
zhou jin 0 xin S Q.front Q.rear p e = p -> data = zhou p e = p -> data = jin p e = p -> data = xin Q.rear 0 4、离开队列DeQueue_L( LinkQueue &Q ,QElemType &e ) 注意! p = Q.front->next ; e = p->data ;//取第一个结点 free ( p ) ; return OK ; Status DeQueue _L( LinkQueue &Q ,QElemType &e ) { } Q.front->next = p->next ; //删除第一个结点 if ( Q.front == Q.rear ) return ERROR ; if ( Q.rear == p ) Q.rear = Q.front ; //若需要删除的队头结点就是尾结点 J1 ∧ Q.front Q.rear J2 ∧ 自测题4 用链接方式存储的队列,在进行删除运算时( )。 A. 仅修改头指针 B. 仅修改尾指针 C. 头、尾指针都要修改 D. 头、尾指针可能都要修改 算法设计题1 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,不设头指针,试设计相应的入队列和出队列的算法 。 … Tail 队头 队尾 typedef struct Lqueue {ElemType data; struct Lqueue *next; }Lqueue,*Queueptr; void QueueIn(Queueptr rear,ElemType x) {//入队列 s=(Queueptr)malloc(sizeof(LQueue)); s->data=x; s->next=rear->next; //元素插入队尾 rear->next=s; rear=s; //求得新的队尾 } … Tail 队头 队尾 typedef struct Lqueue {ElemType data; struct Lqueue *next; }Lqueue,*Queueptr; … Tail 队头 队尾 ElemType QueueOut(Queueptr rear){//出队列 if(rear->next->next==rear) printf("队列为空"); else {p=rear->next; q=p->next; p->next=q->next;x=q->data; if(q==rear) rear=p; free(q); //删除队头元素 return(x); }//else } 算法设计题2 要求完全利用循环队列中的元素空间,设置一个标志域tag,并以tag的值是0或1来区分尾指针和头指针相同时的队列状态是“空”还是“不空”。请编写与此结构相对应的入队和出队的算法。 类型定义: typedef struct {ElemType data[m] ; int rear, front; //队尾和队头指针 int tag; //标记, 0为空,1为非空 } CycQueue; 只设标志的循环队列的入队 void QueueIn (CycQueue cq, ElemType x) { if(cq.tag==1 && cq.front==cq.rear) { printf(“队满\n”); exit(0); } else {cq.rear=(cq.rear+1) % m; cq.data[cq.rear]=x; if (cq.tag==0) cq.tag=1; //由空变不空标记 }//else } 只设标志的循环队列的出队 void QueueOut(CycQueue cq); {if (cq.tag==0) {printf(“队空\n”); exit(0); } else {cq.front=(cq.front+1) % m; if (cq.front==cq.rear) cq.tag=0; //队列由不空变空 }//el

文档评论(0)

优美的文学 + 关注
实名认证
内容提供者

优美的文学优美的文学优美的文学优美的文学优美的文学

1亿VIP精品文档

相关文档