NOIP基础数据结构-栈、队、堆ppt课件.ppt
《NOIP基础数据结构-栈、队、堆ppt课件.ppt》由会员分享,可在线阅读,更多相关《NOIP基础数据结构-栈、队、堆ppt课件.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、cLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用NOIP基基础数数据据结构构 江江涛涛队列、列、栈、堆、堆概概念念与与应用用your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用目目录录栈栈栈栈队队队队列列列列堆堆堆堆3数数数数组组组组124目录目录your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消
2、费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用数数数数组组组组的的的的特性特性特性特性数数组数组(array)的元素(element)或项(item)的类型是相同的数组的大小是固定的、静态的、连续的数组对某元素的存取是O(1)时间数组的插入、删除操作是O(n)时间your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用“订订制制制制”数数数数组组组组数数组由于数组通常的插入、删除操作是O(n)时间的,在某些特定的条件
3、下就显得低效了.因此我们通过对数组元素操作的限制,来达到操作的高效-算法优化的突破点。常见的“订制”数组有:栈、队列、堆等.它们操作的时间效率都很高。注:虽然栈、队列、堆可以不用数组实现,但NOIP的实践中,用数组更简单实用。your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用栈栈(stack)(stack)的的的的图图示示示示栈your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要
4、求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用栈栈的特性的特性的特性的特性栈信息学中的栈一般就是用数组实现栈(stack)是后进先出(last-in-first-out,LIFO)或先进后出(FILO)的栈有三个基本操作压入(push),弹出(pop),取数(getTop)操作都为O(1)时间栈有一个计数器counter或栈顶指针your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用栈栈的的的的实现样实现样例例例例Pasc
5、alPascal代代代代码码栈constmaxn=1000;varstack:array1.maxnofinteger;counter:integer;Procedurepush(x:integer);begin/入栈inc(counter);stackcounter:=x;end;functionpop():integer;begin /出栈pop:=stackcounter;dec(counter);end;your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或
6、接受服务的费用栈栈的的的的实现样实现样例例例例C+C+代代代代码码栈const intmaxn=1000;intstackmaxn,counter=0;voidpush(intx)/入栈stack+counter=x;intpop()/出栈returnstackcounter-;your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用栈栈的常的常的常的常见应见应用用用用举举例例例例栈括号匹配-判断字符串()()是否括号匹配运算表达式-计算表达式 3*(5
7、-(2-3)*(6+5)+8*5 回溯的非递归写法凸包的graham扫描算法your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用队队列列列列(queue)(queue)的的的的图图示示示示队列列your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用队队列的特性列的特性列的特性列的特性队列列信息学中的队列一般也
8、用数组实现队列(queue)是先进先出(first-in-first-out,FIFO)或后进后出(LILO)的队列有三个基本操作入队(push)、出队(pop)、取头(getHead)操作都为O(1)时间队列有队头front和队尾back两个指针,一般也有个计数器counteryour family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用const maxn=1000;varqueue:array1.maxnofinteger;front,back,coun
9、ter:integer;procedurepush(x:integer);begininc(counter);inc(back);/这样的话front,back初始化为1,0queueback:=x;end;functionpop():integer;beginpop:=queuefront;inc(front);dec(counter);end;队队列的列的列的列的实现样实现样例例例例PascalPascal代代代代码码队列列your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者
10、购买商品的价款或接受服务的费用const intmaxn=1000;intqueuemaxn,counter=0,front=0,back=-1;voidpush(intx)queue+back=x;+counter;intpop()-counter;returnqueuefront+;队队列的列的列的列的实现样实现样例例例例C+C+代代代代码码队列列your family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用由于front和back一直向后移动,有可能co
11、unter不大,但back却超过maxn,而引起数组越界。数数数数组实现队组实现队列的可能缺点列的可能缺点列的可能缺点列的可能缺点队列列frontbackyour family siteyour site hereLOGO经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用在保证countermaxnthenfront:=1;同样的,每次back:=back+1;后加上ifbackmaxnthenback:=1;队队列的列的列的列的”循循循循环环数数数数组组”方案方案方案方案队列列your family siteyo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOIP 基础 数据结构 ppt 课件
限制150内