




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安全生产责任制考核评分表[1]怎样思想,就有怎样的生活安全生产责任制考核评分表[1]安全生产责任制考核评分表[1]怎样思想,就有怎样的生活第3章栈和队列3.1栈3.1.1抽象数据类型栈的定义3.1.2栈的表示和实现3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现7/17/20212第3章栈和队列栈和队列是两种重要的数据结构。从数据元素的逻辑关系看,栈与队列是线性表,但从操作方式与种类看,它们与线性表有许多不同。栈与队列是操作受限的线性表。尽管它们与线性表有许多共同点,但也有不少特殊性。本章重点介绍这些特殊性,并给出一些典型的应用实例。7/17/20213化学是一门以实验为基础的自然学科。实验教学可以激发学生学习化学的兴趣,帮助学生形成化学概念,获得化学知识和实验技能,培养观察和实验能力,还有助于培养实事求是、严肃认真的科学态度和科学的学习方法。在农村初级中学,长期把实验教学没有重视起来,讲实验背实验是最有效最直接的教学手段。制约着学生素质的发展和学校教学质量的提高。把实验教学的改革和加强作为提高学生素质和教学质量的切入点,充分提高学生的有效参与率,由点到面,由表及里的引入探究机制,达到培养学生和提高教学质量的目的。就此谈几点体会和看法:1重新审视实验教学的地位与作用,树立正确的以实验为基础的教学观化学实验这门课程是通过教学活动使学生把学到的理论知识在实践操作中进行验证,并在感性认识过程中,通过实验技能知识的积累和独立思考,不断丰富观察力、想象力及分析问题和解决问题的能力。教师要真正走出应试教育的阴影,彻底转变观念,自觉探索开发、引导、管理和评价实验教学的新思路,激发学生学习兴趣,处理好"教"与"学"、"验证性"与"探索性"、"课内"与"课外"、"演示"与"分组"等各类实验之间的关系,把全面培养学生创新素质作为长远目标。2精研教材、深挖大纲、心中有数新大纲列出31项演示实验要求教师在规定的时间内一定完成,要深刻领会新大纲精神,通过实验教学激发学生学习化学的兴趣,调动学生学习的主动性和积极性,把化学实验的教学与理论、元素化合物知识的教学与思想政治教育,以及情感、能力、科学态度和科学方法的培养有机结合起来,达到全面提高化学教学质量的目的。3精心调动和呵护学生的实验能动性初中化学教学是化学教育的启蒙阶段,中学生的身心发育特点决定了他们做实验有着强烈的渴望,他们往往在观察演示实验时摩拳擦掌、跃跃欲试,分组实验时总激动不已,大喊大叫,有的甚至偷偷往外带化学药品,希望享有更多的实验条件。但是由于实验要求高或是验证性实验过多,"一切都在预料之中"而感到无奈和困惑。此时教师都要用同情的心态,欣赏的眼光和鼓励的语言去引导他们,在一定情况下满足他们的求知欲,为其提供一些必要的用品,交给一些适当的实验任务。即使学生有过失,也忌讳给学生的实验动机泼凉水,因为探究性学习需要学生的主动性作载体。4做好启蒙工作,培养学生的实验操作技能学习之初,集中做好化学仪器的使用和化学实验基本操作的培训。使学生初步掌握观察实验现象、独立操作简单实验、分析推理物质性质的基础知识,能做出简单的实验报告。规范、样板性的作好演示实验。演示时采用边讲边做的方法,有的可让学生在阅读和观察之后上台来表演,其他学生逐项评判,使学生了解化学学科的基本特点、学习方法和学习任务,逐步向会学过渡。实现知识与技能、过程与方法、情感态度和价值观的同步启迪。实际上新教材已经淡化了演示实验与学生实验的界限,所以适当补充演示实验,增加探究式的演示实验,以严密的逻辑推理和严肃的求实精神去感染、熏陶学生。如在探索燃烧的条件时做的白磷燃烧实验,最后可加入在水中通入氧气,出现水中白磷燃烧的现象,激发学生求知欲,提出问题"为何铜片上的白磷燃烧而红磷不燃烧?水中的白磷燃烧的条件是什么?红磷能不能燃烧?学生讨论后回答,设计实验验证。最后指导学生阅读教材内容,归纳总结出燃烧条件。学生反映这样学既能理解又记得牢。5适量增加学生实验的内容,开辟课外实验,充分提高学生的参与率教学实践表明,家庭小实验的引入使课堂教学延伸至课外,他对激发学习兴趣、巩固知识技能、培养能力、开发智力起到一定作用。比如当把观察蜡烛及其燃烧实验布置给学生,同时让完成阅读教材内容并完成课后习题时,学生感到很新奇,完成的也不错。第二次布置实验测定呼入气体和呼出气体有何差异,大多数学生在家完成,第二天七嘴八舌讨论个没完,原来好多同学的实验结果不同,简单指导后,让学生重新回家完成(住校生多,最好安排在周末)。以后说到实验,学生总想带回家,我就将计就计,每周布置小实验,让学生完成并书写实验报告,不定期检查。多数同学达到老师提出的要求,有个别学生出现自己探究的实验内容,丰富了学生课余生活,扩大了学生视野,培养了学生动手实验能力和观察分析能力,同时促进了对知识的理解和巩固作用。积极倡导小制作,广泛开展课外实验活动,有限的课内分组实验与课外小实验是互补的,教材中有大量的小实验项目,课外实验中,可学生单做,也可分组。所以制作部分简单的化学仪器是教学的需要、学生的需要、也是培养学生艰苦奋斗精神和动手能力的需要。6加强信息技术在实验教学中的应用由于现代信息技术的运用,好似手中多了一个可"随心所欲"变换内容与形式的活教具,利用计算机信息技术可展示课堂演示实验无法演示的宏观的、微观的、极慢的、极快的化学过程,课堂容量增加了,课堂形式变活了,学生学习积极性提高了,教学目标自然得以顺利完成。且通过理论学习、教学实践,提高了自身的科研素质,使自己能更好地适应素质教育的需要。运用计算机信息技术可以突破时间和空间的束缚,进行仿真演示,从而将这些化学过程形象、生动地展示给学生,以提高学生的学习兴趣,增强主动参与学习的意识,同时又能使学生加强认识、深化理解、提高学习能力,提高学生对信息的获取、分析、加工和利用的能力。总之就实验教学而言,主要是培养和发展学生的观察能力、动手实验能力、对实验问题的分析能力。强化课堂演示实验、落实学生分组实验、开发家庭小实验,信息技术都是培养学生观察能力的重要途径,最终达到培养学生素质和提高教学质量的目的。兴趣是认识和从事活动的巨大动力,是推动人们去寻求知识和从事活动的心理因素。“创设丰富的教学情境,激发学生的学习动机,培养学生的学习兴趣,调动学生学习的积极性”,是目前我国新课程改革的要求。在思想政治教学中创设具体生动的教学情境,调动学生的学习积极性,取得明显的教学效果,成为摆在广大思想品德课教师面前的问题。我就思想品德课上如何创设情境谈谈自己的体会。一、创设游戏教学情境,给学生愉悦的空间学生,特别是初一学生,在他们心目中自己只比小学生大了一点点,上课时有好多学生集中注意的时间较短、稳定性差,分配注意的能力较差,教师可创设游戏情境,让学生在游戏的活动中不知不觉地进行学习,以延长有意注意的时间及增强学习效果,实现学生愉快地接受知识。例如在初一教材中讲到青春期的一些生理变化时,可以让学生憋气,看看能持续多长时间,从而体会到青春期的一个生理变化就是肺活量变大了。在讲到人的潜能是多方面时,每个人至少有七个方面的智能:语言智能、音乐智能、数学逻辑智能、空间智能、身体运动智能、人际交往智能和自我认识智能。如果让学生一个个死记硬背,那么难免会有丢失现象。因此不妨给每个智能都设计一个游戏:语言智能――绕口令,音乐智能――识乐谱,数学逻辑智能――算24,身体运动智能――拷贝不走样……这样,学生就能在游戏之中轻松的记住知识。二、创设诗画、音乐教学情境,给学生审美的空间初一教材中,在讲到“情绪会随着个人的境遇和社会生活的变化而变化”时,有幸听到一位教师的公开课,她利用配乐诗来创设情境。李白的两过长江,因为一贬一赦,情绪完全不同,并将不同的情绪反映在他的诗中,教师录制了一段低沉而抑郁的吟颂“此江清若空,谣将碧海通……平身不泪下,于此泣无穷。”并选择了一段凄怨哀婉的配乐。而在李白第二次过长江时,情不自禁的吟道:“朝辞白帝彩云间,千里江陵一日还。两岸猿声啼不住,轻舟已过万重山。”音乐也随之换成高亢激昂的乐曲,音乐声与充满激情的朗诵,学生很轻松的就能体会到李白的情绪由抑郁寡欢转变为轻松愉快。作为听课教师,仿佛也被这恰到好处的配乐诗朗诵带进了李白的情绪当中,随之低落,随之高昂。这时,教师适时引导:“同是美丽的长江景色,诗人前后情绪为何不同呢?”学生在这种氛围中就会自寻答案,踊跃回答问题。三、创设故事教学情境,给学生探索的空间初二教材中,在讲到“自强,通向成功的阶梯”这一内容时,我介绍了石油大王哈默的故事。“1914年冬,一个小镇来了一群饥肠辘辘的落难者,好心的人们拿出饭食给他们吃,大部分落难者狼吞虎咽,连一句感谢的话都没来得及说。镇长把食物送到一个年轻人面前……”故事发展到这儿,接下去这个年轻人会怎么办?结局是什么?让同学们根据自己的猜测和想象来续编这个故事。我们都知道这位青年就是著名的石油大王哈默,他靠自己自强不息的品质成了赫赫有名的实业家。这样,通过故事续写而不是将整个故事呈现出来,让学生在故事续写中不仅体会到哈默有骨气、积极进取、不懈追求等自强品质帮助他通向了成功,而且培养了他们的想象能力和语言组织能力。四、创设形象教学情境,给学生体验的空间思想品德是一门理论性特别强的学科,这对善于形象思维而不善于抽象思维的青少年学生来说,既难产生兴趣,又不易理解掌握。因此,创设形象教学情境,变抽象为具体,对吸引学生注意力、丰富学生的想象力、调动学生的积极性变得尤为重要。例如,在介绍“联合国”时,我代表联合国秘书长,每一个学生代表一个国家,用四十分钟模拟联大的程序召开联合国大会。又如在讲授权利和义务的关系时,由学生扮演一个消费者和一个售货员进行小品表演,然后由学生运用所学知识对小品中二人的权利和义务进行分析。再如我在讲授消费者如何维护自己的合法权益时,带领学生到我市的消费者协会做实地调查,并写出调查报告;在讲授商品的价格时,带领学生到我市最大的农贸市场做市场价格调查,并用所学的经济学原理分析市场的价格现象;在讲授依法治国问题时,组织学生到法院旁听案件审理的全过程等等。学生情绪高涨,学生不仅把握了相关知识,而且培养了学生的表达能力,开拓了学生的视野。这不仅活跃了课堂气氛,激发了学生的学习兴趣,而且把那些用文字很难表达的内容具体化、形象化,便于学生掌握和理解,更主要的是很好地激发了同学们的想象力和创造力,也有效地训练了他们的思维能力,充分张扬了他们的鲜明的个性,提高了思想品德课教学的时效性,融知识性、趣味性为一体,收到了很好的效果。五、创设实践教学情境,给学生动手的空间瑞士心理学家皮亚杰认为:知识源于活动。教师可根据学生的特点,想方设法创设一个让学生饱尝努力探求,勤奋思考后获得知识,取得成功的情境,以此增强学生的信心,满足学生学习欲望,从而使师生都能一起分享成功带来的喜悦。例如通过课前时事快讯、主题班会、政治手抄报、绿色环保、爱心助残等实践活动,让学生看到自己的成果,体验成功的喜悦,以此激发其学习的积极性,增强学习思想品德课的信心和决心。曾经有位教育专家说过:“情境教育的好处是把教材教活了,把孩子教活了,把教学过程中的育人功能充分地体现了出来,因此,‘情境教学――情境教育’是对素质教育的一种有效的探索。”我们呼唤情境教育走进思想品德课堂,让思想品德课堂鲜活起来吧!安全生产责任制考核评分表[1]怎样思想,就有怎样的生活安全生第3章栈和队列3.1栈3.1.1抽象数据类型栈的定义3.1.2栈的表示和实现3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/20222第3章栈和队列3.1栈12/10/20222安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件3.1栈(Stack)例:设栈的初始状态为空,容量为5。若入栈元素的顺序是1、2、3、4、5,则出栈元素的顺序不可能是【】。A.12345B.34125C.24351D.5432112/13/202273.1栈(Stack)例:设栈的初始状态为空,容量为5。3.1栈(Stack)二、栈的抽象数据类型定义ADTStack{数据对象:D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}约定an端为栈顶,a1端为栈底。基本操作:InitStack(&S)操作结果:构造一个空栈S。DestroyStack(&S)初始条件:栈S已存在。操作结果:栈S被销毁。12/13/202283.1栈(Stack)二、栈的抽象数据类型定义12/103.1栈(Stack)
ClearStack(&S)初始条件:栈S已存在。操作结果:将S清为空栈。StackEmpty(S)初始条件:栈S已存在。操作结果:若栈S为空栈,则返回TRUE,否则FALSE。StackLength(S)初始条件:栈S已存在。操作结果:返回S的元素个数,即栈的长度。12/13/202293.1栈(Stack)ClearStac3.1栈(Stack)
GetTop(S,&e)初始条件:栈S已存在且非空。操作结果:用e返回S的栈顶元素。Push(&S,e)初始条件:栈S已存在。操作结果:插入元素e为新的栈顶元素。Pop(&S,&e)初始条件:栈S已存在且非空。操作结果:删除S的栈顶元素,并用e返回其值。}ADTStack12/13/2022103.1栈(Stack)GetTop(S,3.1栈(Stack)3.1.2栈的表示和实现一、顺序栈1、定义:栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。2、初始化空栈时不限定栈的最大容量:先分配一个基本容量,需要时再逐渐扩大STACK_INIT_SIZE;STACKINCREMENT3、设置栈底指针base,始终指向栈底。当base=NULL,栈不存在当top=base时,栈空12/13/2022113.1栈(Stack)3.1.2栈的表示和实现12/10topbasebasetopbasetopbasetopAABCDEAB空栈
A进栈EDC出栈
BCDE进栈3.1栈(Stack)12/13/202212topbasebasetopbasetopbasetopAA3.1栈(Stack)二、顺序栈的C语言定义顺序栈的类型定义如下:#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10;//存储空间分配增量
typedefstruct{SElemType*base;//在构造之前和销毁之后base的值是NULLSElemType*top;//栈顶指针intStacksize;//栈的当前可使用的最大容量.}SqStack;12/13/2022133.1栈(Stack)二、顺序栈的C语言定义12/10/3.1栈(Stack)三、顺序栈的应用1、初始化StatusInitStack(SqStack&S){//构造一个空栈SS.base=(SelemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));if(!S.base)exit(OVERFLOW);//存储分配失败S=S.base;S.stacksize=STACK_INIT_SIZE;returnOK;}//InitStack12/13/2022143.1栈(Stack)三、顺序栈的应用12/10/2023.1栈(Stack)2、读栈顶元素StatusGetTop(SqStackS,SElemType&e){//若栈不空,则用e返回S的栈顶元素,并返回ok;//否则返回ERRORif(S==S.base)returnERROR;e=*(S-1);returnOK;}//GetTop12/13/2022153.1栈(Stack)2、读栈顶元素12/10/20223.1栈(Stack)3、插入元素StatusPush(SqStack&S,SElemTypee){//插入元素e为新的栈顶元素if(S-s.base>=S.stacksize){//栈满,追加存储空间S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));if(!S.base)exit(OVERFLOW);S=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S++=e;returnOK;}//Push12/13/2022163.1栈(Stack)3、插入元素12/10/202213.1栈(Stack)4、删除StatusPop(SqStack&S,SElemType&e){//若栈不空,则删除S的栈顶元素,用e返回//其值,并返回OK;否则返回ERRORif(S==S.base)returnERROR;e=*--S;returnOK;}//Pop12/13/2022173.1栈(Stack)4、删除12/10/2022173.1栈(Stack)四、链栈栈的链式存储结构称为链栈。它是运算受限的单链表,是线性链表的特例。插入和删除操作仅限制在表头位置上进行。data
next
san-1a1an栈顶栈底12/13/2022183.1栈(Stack)四、链栈datanext第3章栈和队列3.1栈3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/202219第3章栈和队列3.1栈12/10/2022193.2栈的应用举例
由于栈结构具有的后进先出的固有特性,致使栈成为程序设计中的有用工具。3.2.1数制转换十进制数N和其它d进制数的转换是计算机计算的基本问题。12/13/2022203.2栈的应用举例由于栈结构具有的后进先出的固有特3.2栈的应用举例
N=(Ndivd)*d+nmodd(其中:div为整除运算,mod为求余运算)例如(1348)10=(2504)8,其运算过程如下:
N1348168212Ndiv81682120Nmod84052显示时按从高位到低位的顺序输出计算时从低位到高位顺序产生八进制数的各个数位12/13/2022213.2栈的应用举例N=(Ndivd)*d+n3.2栈的应用举例voidconversion()
{InitStack(s);//构建空栈
scanf(“%d”,N);//输入一个非负十进制整数
while(N){//N不等于零,循环
push(s,N%8);//
N/8第一个余数进栈N=N/8;//整除运算}
while(!StackEmpty(s))//输出存放在栈中//的八制数位{Pop(s);
printf(“%d”,e);
}
}//conversion12/13/2022223.2栈的应用举例voidconversion()
3.2栈的应用举例3.2.3括号匹配的检验算法思路:1、构建空栈,如左括号则入栈;2、如右括号,则读栈顶元素。若与其匹配,则出栈;若不匹配,则返回“不匹配”;3、判定栈是否为空,若栈不空,则返回“不匹配”。例1[([][])]例2[([][])12/13/2022233.2栈的应用举例3.2.3括号匹配的检验12/10/23.2栈的应用举例3.2.3行编辑程序一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。允许用户输入出错时可以及时更正。可以约定#为退格符,以表示前一个字符无效,为退行符,表示当前行所有字符均无效。
例:在终端上用户输入为whli##ilr#e(s#*s)应为while(*s)outchaputchar(*s=#++);putchar(*s++);
12/13/2022243.2栈的应用举例3.2.3行编辑程序12/10/2023.2栈的应用举例voidlineEdit(){//利用字符栈S,从终端接收一行并传送至调用过程的数据区。
InitStack(S);ch=getchar();//从终端接收第一个字符while(ch!=EOF){//EOF为全文结束符while(ch!=EOF&&ch!=‘\n’){switch(ch){case‘#’:Pop(s,c);break;//仅当栈非空时退栈case‘’:ClearStack(s);break;//
重置S为空栈12/13/2022253.2栈的应用举例voidlineEdit(){123.2栈的应用举例
default:Push(S,ch);break;//有效字符进//栈,未考虑栈满情形}ch=getchar();//从终端接收下一个字符}
将从栈底到栈顶的字符传送至调用过程的数据区;ClearStack(S);//重置S为空栈if(ch!=EOF)ch=getchar();}DestroyStack(S);}12/13/2022263.2栈的应用举例default第3章栈和队列3.1栈3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/202227第3章栈和队列3.1栈12/10/2022273.4队列3.4.1抽象数据类型队列的定义一、定义:1、队列(queue)是一种先进先出(FIFO)的线性表。限定仅能在表头进行删除,表尾进行插入。队列的典型例子有操作系统中的作业排队和顾客服务部门的工作方式等。12/13/2022283.4队列3.4.1抽象数据类型队列的定义12/10/203.4队列二、队列的抽象数据类型定义ADTQueue{数据对象:D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}约定其中a1端为队列头,an端为队列尾。基本操作:InitQueue(&Q)操作结果:构造一个空队列Q。DestroyQueue(&Q)初始条件:队列Q已存在。操作结果:队列Q被销毁,不再存在。12/13/2022293.4队列二、队列的抽象数据类型定义12/10/202223.4队列
ClearQueue(&Q)初始条件:队列Q已存在。操作结果:将Q清为空队列。QueueEmpty(Q)初始条件:队列Q已存在。操作结果:若Q为空队列,则返回TRUE,否则返回FALSE。QueueLength(Q)初始条件:队列Q已存在。操作结果:返回Q的元素个数,即队列的长度。12/13/2022303.4队列ClearQueue(&Q)123.4队列
GetHead(Q,&e)初始条件:Q为非空队列。操作结果:用e返回Q的队头元素。EnQueue(&Q,e)初始条件:队列Q已存在。操作结果:插入元素e为Q的新的队尾元素。DeQueue(&Q,&e)初始条件:Q为非空队列。操作结果:删除Q的队头元素,并用e返回其值。}ADTQueue12/13/2022313.4队列GetHead(Q,&e)123.4队列3.4.2链队列-队列的链式表示和实现一、定义1、用链表表示的队列。一个链队列需要两个分别指示队头和队尾的指针。队头在链头,队尾在链尾。2、链式队列在进队时无队满问题,但有队空问题。队空条件为front==rear。12/13/2022323.4队列3.4.2链队列-队列的链式表示和实现12/13.4队列12/13/2022333.4队列12/10/2022333.4队列二、链队列的C语言定义typedefstructQNode{//结点类型QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{//链队列类型QueuePtrfront;//队头指针QueuePtrrear;//队尾指针}LinkQueue;12/13/2022343.4队列二、链队列的C语言定义12/10/2022343.4队列12/13/2022353.4队列12/10/2022353.4队列三、链队列的ADT定义-基本操作的算法实现1、初始化StatusInitQueue(LinkQueue&Q){//构造一个空队列QQ.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(OVERFLOW);Q.front->next=NULL;returnOK;}12/13/2022363.4队列三、链队列的ADT定义-基本操作的算法实现12/3.4队列2、销毁StatusDestroyqueue(LinkQueue&Q){//队列Q存在则销毁Qwhile(Q.front){Q.rear=Q.front->next;free(Q.front);Q.front=Q.rear;}returnOK;}12/13/2022373.4队列2、销毁12/10/2022373.4队列3、插入StatusEnQueue(LinkQueue&Q,QElemTypee){//队列Q存在,插入元素e为Q的队尾元素p=(QueuePtr)malloc(sizeof(QNode));if(!p)exit(OVERFLOW);p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;returnOK;}12/13/2022383.4队列3、插入12/10/2022383.4队列4、删除StatusDeQueue(LinkQueue&Q,QElemType&e){//Q为非空队列,删除Q的队头元素,并用e返回其值if(Q.front==Q.rear)returnERROR;p=Q.front->next;e=p->data;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;free(p);returnOK;}12/13/2022393.4队列4、删除12/10/2022393.4队列3.4.3循环队列-队列的顺序表示和实现一、定义用一组地址连续的存储单元依次存放从队列头到队列尾的元素,并附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。二、顺序队列↔循环队列P63图3.12图3.1312/13/2022403.4队列3.4.3循环队列-队列的顺序表示和实现12/13.4队列12/13/2022413.4队列12/10/2022413.4队列三、循环队列的问题和解决方法12/13/2022423.4队列三、循环队列的问题和解决方法12/10/20223.4队列队列满和队列空:Q.front=Q.rear只凭上式,无法判断是队满还是队空。有两种解决方法:
1)另设一个标志位以区分队空、队满。
2)少用一个存储单元,队满条件front=rear+1;本书中算法用2)方法。12/13/2022433.4队列队列满和队列空:Q.front=Q.rear123.4队列四、循环队列的C语言表示#DefineMAXQSIZE100//最大队列长度typedefstruct{QElemType*base;//初始化的动态分配存储空间intfront;//头指针,若队列不空,指向头元素intrear;//尾指针,若队列不空,指向队列尾元素//的下一个位置}SqQueue;12/13/2022443.4队列四、循环队列的C语言表示12/10/2022443.4队列五、循环队列的基本操作的算法描述1、初始化StatusInitQueue(SqQueue&Q){
//构造一个空队列QQ.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));if(!Q.base)exit(OVERFLOW);Q.front=Q.rear=0;returnOK;}12/13/2022453.4队列五、循环队列的基本操作的算法描述12/10/203.4队列2、求队列长度intQueueLength(SqQueueQ){
//返回Q的元素个数,即队列的长度return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;}12/13/2022463.4队列2、求队列长度12/10/2022463.4队列3、插入StatusEnQueue(SqQueue&Q,QElemTypee){//插入元素e为Q的新的队尾元素if((Q.rear+1)%MAXQSIZE==Q.front)returnERROR;//队列满Q.base[Q.rear]=e;Q.rear=(Q.rear+1)%MAXQSIZE;returnOK;}12/13/2022473.4队列3、插入12/10/2022473.4队列4、删除StatusDeQueue(SqQueue&Q,QElemType&e){//队列Q存在,删除Q的队头元素,用e返回//其值,并返回OK;否则返回ERRORif(Q.rear==Q.front)returnERROR;//队列空e=Q.base[Q.front];Q.front=(Q.front+1)%MAXQSIZE;returnOK;}12/13/2022483.4队列4、删除12/10/202248本章内容复习熟悉栈和队列的逻辑结构定义和特性,并在各种问题中灵活使用熟练栈在两种存储结构(顺序存储结构和链式存储结构)下的实现方法熟练队列在两种存储结构(循环队列和链队列)下的实现方法12/13/202249本章内容复习熟悉栈和队列的逻辑结构定义和特性,并在各种问题中作业1.设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:(1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何(这里Push(i)表示i进栈,Pop()表示出栈)?(2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。(3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的?12/13/202250作业1.设将整数1,2,3,4依次进栈,但只要出栈时栈非空作业2.试编写算法,在顺序存储结构下实现堆栈的下列运算:(1)initstk(s)。初始化操作,建立一个空栈s;(2)emptystk(s)。判定栈是否为空;(3)pushstk(s)。如果栈s不满,在栈顶插入x;(4)popstk(s)。如果栈s不空,删除栈顶元素,并返回该元素的值;(5)getstk(s)。如果栈s不空,返回栈顶元素。3.试编写算法,实现链队列的下列操作算法:(1)initlq(q)。初始化操作,建立一个空队q;(2)emptylq(q)。判定队q是否为空;12/13/202251作业2.试编写算法,在顺序存储结构下实现堆栈的下列运算:1作业(3)enterlq(q)。进队列;(4)deletelq(q)。出队列。4.分别叙述栈和队列的特点,并指出它们的共同点。5.循环队列的优点是什么?如何判断它的空和满?假设循环队列只设rear和quelen来分别指示队尾元素的位置和队中元素的个数,试给出判断此循环队列的队满条件,并写出相应的入队和出队算法,要求出队时需返回队头指针。6.讨论限制存取点的表的各种情况,并列举其应用场合。12/13/202252作业(3)enterlq(q)。进队列;12/10/2031、只有永远躺在泥坑里的人,才不会再掉进坑里。——黑格尔
32、希望的灯一旦熄灭,生活刹那间变成了一片黑暗。——普列姆昌德
33、希望是人生的乳母。——科策布
34、形成天才的决定因素应该是勤奋。——郭沫若
35、学到很多东西的诀窍,就是一下子不要学很多。——洛克31、只有永远躺在泥坑里的人,才不会再掉进坑里安全生产责任制考核评分表[1]怎样思想,就有怎样的生活安全生产责任制考核评分表[1]安全生产责任制考核评分表[1]怎样思想,就有怎样的生活第3章栈和队列3.1栈3.1.1抽象数据类型栈的定义3.1.2栈的表示和实现3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现7/17/20212第3章栈和队列栈和队列是两种重要的数据结构。从数据元素的逻辑关系看,栈与队列是线性表,但从操作方式与种类看,它们与线性表有许多不同。栈与队列是操作受限的线性表。尽管它们与线性表有许多共同点,但也有不少特殊性。本章重点介绍这些特殊性,并给出一些典型的应用实例。7/17/20213化学是一门以实验为基础的自然学科。实验教学可以激发学生学习化学的兴趣,帮助学生形成化学概念,获得化学知识和实验技能,培养观察和实验能力,还有助于培养实事求是、严肃认真的科学态度和科学的学习方法。在农村初级中学,长期把实验教学没有重视起来,讲实验背实验是最有效最直接的教学手段。制约着学生素质的发展和学校教学质量的提高。把实验教学的改革和加强作为提高学生素质和教学质量的切入点,充分提高学生的有效参与率,由点到面,由表及里的引入探究机制,达到培养学生和提高教学质量的目的。就此谈几点体会和看法:1重新审视实验教学的地位与作用,树立正确的以实验为基础的教学观化学实验这门课程是通过教学活动使学生把学到的理论知识在实践操作中进行验证,并在感性认识过程中,通过实验技能知识的积累和独立思考,不断丰富观察力、想象力及分析问题和解决问题的能力。教师要真正走出应试教育的阴影,彻底转变观念,自觉探索开发、引导、管理和评价实验教学的新思路,激发学生学习兴趣,处理好"教"与"学"、"验证性"与"探索性"、"课内"与"课外"、"演示"与"分组"等各类实验之间的关系,把全面培养学生创新素质作为长远目标。2精研教材、深挖大纲、心中有数新大纲列出31项演示实验要求教师在规定的时间内一定完成,要深刻领会新大纲精神,通过实验教学激发学生学习化学的兴趣,调动学生学习的主动性和积极性,把化学实验的教学与理论、元素化合物知识的教学与思想政治教育,以及情感、能力、科学态度和科学方法的培养有机结合起来,达到全面提高化学教学质量的目的。3精心调动和呵护学生的实验能动性初中化学教学是化学教育的启蒙阶段,中学生的身心发育特点决定了他们做实验有着强烈的渴望,他们往往在观察演示实验时摩拳擦掌、跃跃欲试,分组实验时总激动不已,大喊大叫,有的甚至偷偷往外带化学药品,希望享有更多的实验条件。但是由于实验要求高或是验证性实验过多,"一切都在预料之中"而感到无奈和困惑。此时教师都要用同情的心态,欣赏的眼光和鼓励的语言去引导他们,在一定情况下满足他们的求知欲,为其提供一些必要的用品,交给一些适当的实验任务。即使学生有过失,也忌讳给学生的实验动机泼凉水,因为探究性学习需要学生的主动性作载体。4做好启蒙工作,培养学生的实验操作技能学习之初,集中做好化学仪器的使用和化学实验基本操作的培训。使学生初步掌握观察实验现象、独立操作简单实验、分析推理物质性质的基础知识,能做出简单的实验报告。规范、样板性的作好演示实验。演示时采用边讲边做的方法,有的可让学生在阅读和观察之后上台来表演,其他学生逐项评判,使学生了解化学学科的基本特点、学习方法和学习任务,逐步向会学过渡。实现知识与技能、过程与方法、情感态度和价值观的同步启迪。实际上新教材已经淡化了演示实验与学生实验的界限,所以适当补充演示实验,增加探究式的演示实验,以严密的逻辑推理和严肃的求实精神去感染、熏陶学生。如在探索燃烧的条件时做的白磷燃烧实验,最后可加入在水中通入氧气,出现水中白磷燃烧的现象,激发学生求知欲,提出问题"为何铜片上的白磷燃烧而红磷不燃烧?水中的白磷燃烧的条件是什么?红磷能不能燃烧?学生讨论后回答,设计实验验证。最后指导学生阅读教材内容,归纳总结出燃烧条件。学生反映这样学既能理解又记得牢。5适量增加学生实验的内容,开辟课外实验,充分提高学生的参与率教学实践表明,家庭小实验的引入使课堂教学延伸至课外,他对激发学习兴趣、巩固知识技能、培养能力、开发智力起到一定作用。比如当把观察蜡烛及其燃烧实验布置给学生,同时让完成阅读教材内容并完成课后习题时,学生感到很新奇,完成的也不错。第二次布置实验测定呼入气体和呼出气体有何差异,大多数学生在家完成,第二天七嘴八舌讨论个没完,原来好多同学的实验结果不同,简单指导后,让学生重新回家完成(住校生多,最好安排在周末)。以后说到实验,学生总想带回家,我就将计就计,每周布置小实验,让学生完成并书写实验报告,不定期检查。多数同学达到老师提出的要求,有个别学生出现自己探究的实验内容,丰富了学生课余生活,扩大了学生视野,培养了学生动手实验能力和观察分析能力,同时促进了对知识的理解和巩固作用。积极倡导小制作,广泛开展课外实验活动,有限的课内分组实验与课外小实验是互补的,教材中有大量的小实验项目,课外实验中,可学生单做,也可分组。所以制作部分简单的化学仪器是教学的需要、学生的需要、也是培养学生艰苦奋斗精神和动手能力的需要。6加强信息技术在实验教学中的应用由于现代信息技术的运用,好似手中多了一个可"随心所欲"变换内容与形式的活教具,利用计算机信息技术可展示课堂演示实验无法演示的宏观的、微观的、极慢的、极快的化学过程,课堂容量增加了,课堂形式变活了,学生学习积极性提高了,教学目标自然得以顺利完成。且通过理论学习、教学实践,提高了自身的科研素质,使自己能更好地适应素质教育的需要。运用计算机信息技术可以突破时间和空间的束缚,进行仿真演示,从而将这些化学过程形象、生动地展示给学生,以提高学生的学习兴趣,增强主动参与学习的意识,同时又能使学生加强认识、深化理解、提高学习能力,提高学生对信息的获取、分析、加工和利用的能力。总之就实验教学而言,主要是培养和发展学生的观察能力、动手实验能力、对实验问题的分析能力。强化课堂演示实验、落实学生分组实验、开发家庭小实验,信息技术都是培养学生观察能力的重要途径,最终达到培养学生素质和提高教学质量的目的。兴趣是认识和从事活动的巨大动力,是推动人们去寻求知识和从事活动的心理因素。“创设丰富的教学情境,激发学生的学习动机,培养学生的学习兴趣,调动学生学习的积极性”,是目前我国新课程改革的要求。在思想政治教学中创设具体生动的教学情境,调动学生的学习积极性,取得明显的教学效果,成为摆在广大思想品德课教师面前的问题。我就思想品德课上如何创设情境谈谈自己的体会。一、创设游戏教学情境,给学生愉悦的空间学生,特别是初一学生,在他们心目中自己只比小学生大了一点点,上课时有好多学生集中注意的时间较短、稳定性差,分配注意的能力较差,教师可创设游戏情境,让学生在游戏的活动中不知不觉地进行学习,以延长有意注意的时间及增强学习效果,实现学生愉快地接受知识。例如在初一教材中讲到青春期的一些生理变化时,可以让学生憋气,看看能持续多长时间,从而体会到青春期的一个生理变化就是肺活量变大了。在讲到人的潜能是多方面时,每个人至少有七个方面的智能:语言智能、音乐智能、数学逻辑智能、空间智能、身体运动智能、人际交往智能和自我认识智能。如果让学生一个个死记硬背,那么难免会有丢失现象。因此不妨给每个智能都设计一个游戏:语言智能――绕口令,音乐智能――识乐谱,数学逻辑智能――算24,身体运动智能――拷贝不走样……这样,学生就能在游戏之中轻松的记住知识。二、创设诗画、音乐教学情境,给学生审美的空间初一教材中,在讲到“情绪会随着个人的境遇和社会生活的变化而变化”时,有幸听到一位教师的公开课,她利用配乐诗来创设情境。李白的两过长江,因为一贬一赦,情绪完全不同,并将不同的情绪反映在他的诗中,教师录制了一段低沉而抑郁的吟颂“此江清若空,谣将碧海通……平身不泪下,于此泣无穷。”并选择了一段凄怨哀婉的配乐。而在李白第二次过长江时,情不自禁的吟道:“朝辞白帝彩云间,千里江陵一日还。两岸猿声啼不住,轻舟已过万重山。”音乐也随之换成高亢激昂的乐曲,音乐声与充满激情的朗诵,学生很轻松的就能体会到李白的情绪由抑郁寡欢转变为轻松愉快。作为听课教师,仿佛也被这恰到好处的配乐诗朗诵带进了李白的情绪当中,随之低落,随之高昂。这时,教师适时引导:“同是美丽的长江景色,诗人前后情绪为何不同呢?”学生在这种氛围中就会自寻答案,踊跃回答问题。三、创设故事教学情境,给学生探索的空间初二教材中,在讲到“自强,通向成功的阶梯”这一内容时,我介绍了石油大王哈默的故事。“1914年冬,一个小镇来了一群饥肠辘辘的落难者,好心的人们拿出饭食给他们吃,大部分落难者狼吞虎咽,连一句感谢的话都没来得及说。镇长把食物送到一个年轻人面前……”故事发展到这儿,接下去这个年轻人会怎么办?结局是什么?让同学们根据自己的猜测和想象来续编这个故事。我们都知道这位青年就是著名的石油大王哈默,他靠自己自强不息的品质成了赫赫有名的实业家。这样,通过故事续写而不是将整个故事呈现出来,让学生在故事续写中不仅体会到哈默有骨气、积极进取、不懈追求等自强品质帮助他通向了成功,而且培养了他们的想象能力和语言组织能力。四、创设形象教学情境,给学生体验的空间思想品德是一门理论性特别强的学科,这对善于形象思维而不善于抽象思维的青少年学生来说,既难产生兴趣,又不易理解掌握。因此,创设形象教学情境,变抽象为具体,对吸引学生注意力、丰富学生的想象力、调动学生的积极性变得尤为重要。例如,在介绍“联合国”时,我代表联合国秘书长,每一个学生代表一个国家,用四十分钟模拟联大的程序召开联合国大会。又如在讲授权利和义务的关系时,由学生扮演一个消费者和一个售货员进行小品表演,然后由学生运用所学知识对小品中二人的权利和义务进行分析。再如我在讲授消费者如何维护自己的合法权益时,带领学生到我市的消费者协会做实地调查,并写出调查报告;在讲授商品的价格时,带领学生到我市最大的农贸市场做市场价格调查,并用所学的经济学原理分析市场的价格现象;在讲授依法治国问题时,组织学生到法院旁听案件审理的全过程等等。学生情绪高涨,学生不仅把握了相关知识,而且培养了学生的表达能力,开拓了学生的视野。这不仅活跃了课堂气氛,激发了学生的学习兴趣,而且把那些用文字很难表达的内容具体化、形象化,便于学生掌握和理解,更主要的是很好地激发了同学们的想象力和创造力,也有效地训练了他们的思维能力,充分张扬了他们的鲜明的个性,提高了思想品德课教学的时效性,融知识性、趣味性为一体,收到了很好的效果。五、创设实践教学情境,给学生动手的空间瑞士心理学家皮亚杰认为:知识源于活动。教师可根据学生的特点,想方设法创设一个让学生饱尝努力探求,勤奋思考后获得知识,取得成功的情境,以此增强学生的信心,满足学生学习欲望,从而使师生都能一起分享成功带来的喜悦。例如通过课前时事快讯、主题班会、政治手抄报、绿色环保、爱心助残等实践活动,让学生看到自己的成果,体验成功的喜悦,以此激发其学习的积极性,增强学习思想品德课的信心和决心。曾经有位教育专家说过:“情境教育的好处是把教材教活了,把孩子教活了,把教学过程中的育人功能充分地体现了出来,因此,‘情境教学――情境教育’是对素质教育的一种有效的探索。”我们呼唤情境教育走进思想品德课堂,让思想品德课堂鲜活起来吧!安全生产责任制考核评分表[1]怎样思想,就有怎样的生活安全生第3章栈和队列3.1栈3.1.1抽象数据类型栈的定义3.1.2栈的表示和实现3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/202255第3章栈和队列3.1栈12/10/20222安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件安全生产责任制考核评分表[1]课件3.1栈(Stack)例:设栈的初始状态为空,容量为5。若入栈元素的顺序是1、2、3、4、5,则出栈元素的顺序不可能是【】。A.12345B.34125C.24351D.5432112/13/2022603.1栈(Stack)例:设栈的初始状态为空,容量为5。3.1栈(Stack)二、栈的抽象数据类型定义ADTStack{数据对象:D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}约定an端为栈顶,a1端为栈底。基本操作:InitStack(&S)操作结果:构造一个空栈S。DestroyStack(&S)初始条件:栈S已存在。操作结果:栈S被销毁。12/13/2022613.1栈(Stack)二、栈的抽象数据类型定义12/103.1栈(Stack)
ClearStack(&S)初始条件:栈S已存在。操作结果:将S清为空栈。StackEmpty(S)初始条件:栈S已存在。操作结果:若栈S为空栈,则返回TRUE,否则FALSE。StackLength(S)初始条件:栈S已存在。操作结果:返回S的元素个数,即栈的长度。12/13/2022623.1栈(Stack)ClearStac3.1栈(Stack)
GetTop(S,&e)初始条件:栈S已存在且非空。操作结果:用e返回S的栈顶元素。Push(&S,e)初始条件:栈S已存在。操作结果:插入元素e为新的栈顶元素。Pop(&S,&e)初始条件:栈S已存在且非空。操作结果:删除S的栈顶元素,并用e返回其值。}ADTStack12/13/2022633.1栈(Stack)GetTop(S,3.1栈(Stack)3.1.2栈的表示和实现一、顺序栈1、定义:栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。2、初始化空栈时不限定栈的最大容量:先分配一个基本容量,需要时再逐渐扩大STACK_INIT_SIZE;STACKINCREMENT3、设置栈底指针base,始终指向栈底。当base=NULL,栈不存在当top=base时,栈空12/13/2022643.1栈(Stack)3.1.2栈的表示和实现12/10topbasebasetopbasetopbasetopAABCDEAB空栈
A进栈EDC出栈
BCDE进栈3.1栈(Stack)12/13/202265topbasebasetopbasetopbasetopAA3.1栈(Stack)二、顺序栈的C语言定义顺序栈的类型定义如下:#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10;//存储空间分配增量
typedefstruct{SElemType*base;//在构造之前和销毁之后base的值是NULLSElemType*top;//栈顶指针intStacksize;//栈的当前可使用的最大容量.}SqStack;12/13/2022663.1栈(Stack)二、顺序栈的C语言定义12/10/3.1栈(Stack)三、顺序栈的应用1、初始化StatusInitStack(SqStack&S){//构造一个空栈SS.base=(SelemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));if(!S.base)exit(OVERFLOW);//存储分配失败S=S.base;S.stacksize=STACK_INIT_SIZE;returnOK;}//InitStack12/13/2022673.1栈(Stack)三、顺序栈的应用12/10/2023.1栈(Stack)2、读栈顶元素StatusGetTop(SqStackS,SElemType&e){//若栈不空,则用e返回S的栈顶元素,并返回ok;//否则返回ERRORif(S==S.base)returnERROR;e=*(S-1);returnOK;}//GetTop12/13/2022683.1栈(Stack)2、读栈顶元素12/10/20223.1栈(Stack)3、插入元素StatusPush(SqStack&S,SElemTypee){//插入元素e为新的栈顶元素if(S-s.base>=S.stacksize){//栈满,追加存储空间S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));if(!S.base)exit(OVERFLOW);S=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S++=e;returnOK;}//Push12/13/2022693.1栈(Stack)3、插入元素12/10/202213.1栈(Stack)4、删除StatusPop(SqStack&S,SElemType&e){//若栈不空,则删除S的栈顶元素,用e返回//其值,并返回OK;否则返回ERRORif(S==S.base)returnERROR;e=*--S;returnOK;}//Pop12/13/2022703.1栈(Stack)4、删除12/10/2022173.1栈(Stack)四、链栈栈的链式存储结构称为链栈。它是运算受限的单链表,是线性链表的特例。插入和删除操作仅限制在表头位置上进行。data
next
san-1a1an栈顶栈底12/13/2022713.1栈(Stack)四、链栈datanext第3章栈和队列3.1栈3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/202272第3章栈和队列3.1栈12/10/2022193.2栈的应用举例
由于栈结构具有的后进先出的固有特性,致使栈成为程序设计中的有用工具。3.2.1数制转换十进制数N和其它d进制数的转换是计算机计算的基本问题。12/13/2022733.2栈的应用举例由于栈结构具有的后进先出的固有特3.2栈的应用举例
N=(Ndivd)*d+nmodd(其中:div为整除运算,mod为求余运算)例如(1348)10=(2504)8,其运算过程如下:
N1348168212Ndiv81682120Nmod84052显示时按从高位到低位的顺序输出计算时从低位到高位顺序产生八进制数的各个数位12/13/2022743.2栈的应用举例N=(Ndivd)*d+n3.2栈的应用举例voidconversion()
{InitStack(s);//构建空栈
scanf(“%d”,N);//输入一个非负十进制整数
while(N){//N不等于零,循环
push(s,N%8);//
N/8第一个余数进栈N=N/8;//整除运算}
while(!StackEmpty(s))//输出存放在栈中//的八制数位{Pop(s);
printf(“%d”,e);
}
}//conversion12/13/2022753.2栈的应用举例voidconversion()
3.2栈的应用举例3.2.3括号匹配的检验算法思路:1、构建空栈,如左括号则入栈;2、如右括号,则读栈顶元素。若与其匹配,则出栈;若不匹配,则返回“不匹配”;3、判定栈是否为空,若栈不空,则返回“不匹配”。例1[([][])]例2[([][])12/13/2022763.2栈的应用举例3.2.3括号匹配的检验12/10/23.2栈的应用举例3.2.3行编辑程序一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。允许用户输入出错时可以及时更正。可以约定#为退格符,以表示前一个字符无效,为退行符,表示当前行所有字符均无效。
例:在终端上用户输入为whli##ilr#e(s#*s)应为while(*s)outchaputchar(*s=#++);putchar(*s++);
12/13/2022773.2栈的应用举例3.2.3行编辑程序12/10/2023.2栈的应用举例voidlineEdit(){//利用字符栈S,从终端接收一行并传送至调用过程的数据区。
InitStack(S);ch=getchar();//从终端接收第一个字符while(ch!=EOF){//EOF为全文结束符while(ch!=EOF&&ch!=‘\n’){switch(ch){case‘#’:Pop(s,c);break;//仅当栈非空时退栈case‘’:ClearStack(s);break;//
重置S为空栈12/13/2022783.2栈的应用举例voidlineEdit(){123.2栈的应用举例
default:Push(S,ch);break;//有效字符进//栈,未考虑栈满情形}ch=getchar();//从终端接收下一个字符}
将从栈底到栈顶的字符传送至调用过程的数据区;ClearStack(S);//重置S为空栈if(ch!=EOF)ch=getchar();}DestroyStack(S);}12/13/2022793.2栈的应用举例default第3章栈和队列3.1栈3.2栈的应用举例3.4队列3.4.1抽象数据类型队列的定义3.4.2链队列-队列的链式表示和实现3.4.3循环队列-队列的顺序表示和实现12/13/202280第3章栈和队列3.1栈12/10/2022273.4队列3.4.1抽象数据类型队列的定义一、定义:1、队列(queue)是一种先进先出(FIFO)的线性表。限定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版物业服务合同续签程序
- 兼职人员聘用劳务合同二零二五年
- 二零二五个人借款担保协议
- 有关房屋转手买卖三方合同二零二五年
- 2025深圳兼职劳动合同(合同范本)
- 2025长途司机劳动合同
- 2025空调购销合同范本模板
- 2025钢铁厂炼铁系统建设安装工程分包合同(合同范本)
- 创业培训计划书模板
- 2025建筑装修清包合同办公楼地毯、照明及室内装饰
- DL5190.5-2019电力建设施工技术规范第5部分:管道及系统
- 肩关节解剖优质课件
- 区慢性病综合防控示范区绩效考核评操作表
- 【课件】时代与变革-为人生而艺术 课件高中美术人美版(2019)美术鉴赏
- 液压与气压传动完整版课件
- 建设工程施工合同(示范文本)GF-2020-0201模板
- 2013-04 FLUENT工程技术与实例分析(套装上下册) 周俊杰、徐国权、 张华俊 中国水利水电出版社
- 慢性阻塞性肺病.ppt
- 采矿试题题库
- 大连市历年居民收入及职工工资统计数据
- 厌氧氨氧化ppt
评论
0/150
提交评论