- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 第三章 栈队列概要
F G H D E 0 1 2 3 4 5 f r ← G,H进队 方案二的空,满队列条件: A B C D E 0 1 2 3 4 5 r f 当 r+1==f 或 (f==0)(r==maxleng-1) 即:(r+1)% maxleng==f 为满队列 0 1 2 3 4 5 r f (2)空队列条件: A,B,C,D,E 依次出队后: 当(f==r)为空队列 (1)满队列条件: 若A,B,C,D,E 依次进队后: 4.顺序队列算法举例 定义队列的C类型 #define MAXLENG 100 Typedef struct { ElemType elem[MAXLENG]; int front,rear; } SeQueue; //定义结构变量Q表示队列 SeQueue Q; elem[0] elem[1] … … elem … … … … … … elem[MAXLENG-1] front rear 队列Q的存储结构示意图 (1)进队算法: 假设用Q表示顺序队列,头指针front指向队头元素,rear指向尾元素的后一个空位,e为进队元素。 int En_Queue( SeQueue Q,Elemtype e) { if ((Q.rear+1)% MAXLENG==Q.front) //若Q已满,退出 return ERROR; Q.elem[Q.rear]=e; //装入新元素e Q.rear++; //尾指针后移一个位置 Q.rear = Q.rear % MAXLENG; //为循环队列 return OK; } 0 1 2 MAXLENG-1 /// 0 1 2 MAXLENG-1 rear front rear front Q[0..MAXLENG-1]已满 Q[0.. MAXLENG-1]已满 (2)出队算法 int De_Queue(SeQueue Q,Elemtype e) { if (Q.front==Q.rear) //Q为空队列,退出 return ERROR; e=Q.elem[Q.front]; //取走队头元素,送e Q.front=(Q.front+1)% MAXLENG; //循环后移到一个位置 return OK; } x ... y 0 ... MAXLENG-1 rear front y ... z x 0 ... MAXLENG-1 front rear 思 考 题 1。 如何根据front,rear,maxlength求队列的长度。 (Q.rear-Q.front+maxlength)%maxlength struct node *pop(struct node *top,Elemtype *e) { struct node *p; if (top==NULL) return NULL; //空栈,返回NULL p=top; //p指向原栈的顶结点 (*e)=p-data; //取出原栈的顶元素送(*e) top=top-next; //删除原栈的顶结点 free(p); //释放原栈顶结点的空间 return top; //返回新的栈顶指针top } 退栈算法 3.2 栈的应用举例 栈的基本用途----保存暂时不用的数或存储地址。 3.2.1 数制转换 例. 给定十进制数 N=1348,转换为八进制数 R=2504 1.依次求余数,并送入栈中,直到商为0。 (1) r1=1348%8=4 //求余数 n1=1348/8=168 //求商 (2) r2=168%8=0 //求余数 n2=168/8=21 //求商 (3) r3=21%8=5
您可能关注的文档
- 数学·必修2(苏教版)课件:第2章2.1-2.1.1直线的斜率概要.ppt
- 《俄罗斯》(共45张PPT).ppt
- 数学·必修2(苏教版)课件:第1章1.2-1.2.3直线与平面的位置关系概要.ppt
- 九物19.3《安全用电》(上课用)概要.ppt
- 数学·必修2(苏教版)课件:第2章2.1-2.1.2直线的方程概要.ppt
- 九月九日忆山东兄弟赏析概要.ppt
- 数学·必修2(苏教版)课件:第1章1.2-1.2.2空间两条直线的位置关系概要.ppt
- 数学·必修2(苏教版)课件:第2章2.1-2.1.6点到直线的距离概要.ppt
- 习作——美好的日子概要.ppt
- 习作8古诗研究报告概要.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)