数3-栈队列b.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数3-栈队列b.ppt.ppt

3.4 队列(排队,queue) 3.4.2 链式队列: 用带表头结点的单链表表示队列 1.一般形式 (1)空队列: (2) 非空队列: 其中: Q.front front----队头(首)指针,指向表头结点。 Q.rear----队尾指针,指向队尾结点。 Q.front-data 不放元素。 Q.front-next 指向队首结点a1。; 2.定义结点类型 (1)存放元素的结点类型 typedef struct Qnode { ElemType data; //data为抽象元素类型 struct Qnode *next; //next为指针类型 }Qnode,*QueuePtr; //结点类型, 指针类型 其中:Qnode----结点类型 QueuePtr----指向Qnode的指针类型 (2)由头、尾指针组成的结点类型 typedef struct { Qnode *front; //头指针 Qnode *rear; //尾指针 }LinkQueue; //链式队列类型;3.生成空队列算法 #define LENG sizeof(Qnode) //求结点所占的单元数 LinkQueue InitQueue( ) //生成仅带表头结点的空队??Q { LinkQueue Q; //说明变量Q Q.front=Q.rear=(QueuePtr)malloc(LENG);//生成表头结点 Q.front-next=NULL; //表头结点的next为空指针 return Q; //返回Q的值 };P;5.出队----删除队头结点 (1)若原队列有2个或2个以上的结点;(2)若原队列只有1个结点;出队算法: LinkQueue DelQueue(LinkQueue Q, ElemType *e) { Qnode *p; //说明变量p if (Q.front==Q.rear) //若原队列为空 exit(Empty queqe); //退出去 p=Q.front-next; //P指向队头结点 (*e)=p-data; //取出元素,e指向它 Q.front-next=p-next; //删除队头结点 if (Q.rear==p) //若原队列只有1个结点 Q.rear=Q-front; //修改尾指针 free(p); //释放被删除结点的空间 return Q; //返回出队后的Q }; ; ; D; G; 3.设f指向队头元素前一个空位,约定此空位不放元素;r指向 队尾元素。将Q[0..5]解释为循环队列。;; F;4.设f指向队头元素;r指向队尾元素的下一个空位,约定此空 位不放元素。将Q[0..5]解释为循环队列。;; F;5.顺序队列算法举例; (2)出队算法 设用Q[0..maxleng-1]表示顺序队列, 头指针f指向队头元 素的前一个空位,r指向队尾元素, 删除队头元素,送入指针e 所指向的对象中。 void De_Queue(Elemtype Q[ ],int *f,*r,Elemtype *e) { if (f==r) //Q为空队列 exit(Empty Queue); //退出 f++; //头指针后移一个位置 f=f % maxleng; //为循环队列 (*e)=Q[f]; //取走队头元素,送(*e) };课堂讨论;课堂讨论;课堂讨论;课堂讨论;作业; //弹出栈顶元素送e, top为链式栈的顶指针 struct node *pop(struct node *top,Elemtype *e) { struct node *p; if (top==NULL) exit(Empty stack) //空栈,退出 p=top; //p指向原栈的顶结点 (*e)=p-data; //取出原栈的顶元素送(*e) top=t

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档