分享
分销 收藏 举报 申诉 / 27
播放页_导航下方通栏广告

类型第十二讲:线性结构(线形表、栈和队列).ppt

  • 上传人:xrp****65
  • 文档编号:13094211
  • 上传时间:2026-01-15
  • 格式:PPT
  • 页数:27
  • 大小:251.50KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第十二 线性 结构 线形 队列
    资源描述:
    单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,12,讲,:,数据结构之,线性结构,数据结构之:线性结构,由,n,个数据元素组成的有限序列,除头元素外,每个元素都有一个前趋,除尾元素外,每个元素都有一个后继,例如,:,26,个英文字母表,(a,,,b,,,,,Z),是一个线性表,线性结构,:,线性表、栈、队列,操作方法和要求的不同划分,线性表的两种存储方式,顺序存储结构:,数组,连续存储,易于定位,不易于插入和删除,链式存储结构:,链表,非连续存储,易于插入和删除,不易于定位,一、线性表,线性表是最常用且最简单的一种数据结构,它是由,n,个数据元素组成的有序集合。,数组与链表,链表,数组,数组的插入与删除,1,2,3,4,5,6,7,8,9,10,11,12,6.5,数组的插入与删除均需要移动后面的元素,插入:,6.5,删除:,4,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,链表的插入与删除,无需移动任何元素,插入:,删除:,顺序存储结构的元素访问,顺序存储结构是指用一组地址连续的存贮单元依次存储线性表的元素,通常用数组实现。,它是按首址(表中第,1,个元素的地址),十,位移来访问每一个元素。,loc(ai,)a,表中元素,i,的内存地址(,1in,);,loc(bi,,,j)b,表中(,i,,,j,),元素的内存地址(,1in,,,1jm,);,一维数组按照下标递增的顺序访问表中元素,a1,a2,an,loc(ai)=loc(a1)+(i-1)*k /,k,每个数据元素的长度,(,字节或机器字,),;,首址 位移,二维数组有按照,先行后列,和,先列后行,的顺序访问表中元素:,b1.n,,,1.m,先行后列,:,loc(bi,,,j)=,loc(b1,,,1),+,(m*(i-1)+(j-1)*k,k,每个数据元素的长度;,首址 位移,先列后行,:,loc(bi,,,j)=,loc(b1,,,1),+,(n*(j-1)+(i-1)*k,k,每个数据元素的长度;,首址 位移,一个向量第一个元素的存储地址是,100,,每个元素的长度是,2,,则第,5,个元素的地址是()。,(NOIP8),A,),110 B,),108 C,),100 D,),109,已知数组中,A,中,每个元素,A,(,I,,,J,),在存贮时要占,3,个字节,设,I,从,1,变化到,8,,,J,从,1,变化到,10,,分配内存时是从地址,SA,开始连续按行存贮分配的。试问:,A,(,5,,,8,),的起始地址为(),(NOIP6)A.SA+141,B.SA+180,C.SA+222,D.SA+225,一个文本屏幕有,25,列及,80,行,屏幕的左上角以(,1,,,1,)表示,而右下角则以(,80,,,25,)表示,屏幕上每一个字符占用两字节(,byte,),,整个屏幕则以线性方式存储在电脑的存储器内,从屏幕左上角开始,位移为,0,,然后逐列逐列存储。求位於屏幕(,X,,,Y,),的第一个字节的位移是(),(NOIP6)A.,(,Y*80+X,)*,2-1,B.,(,Y-1,)*,80+X-1,)*,2C.,(,Y*80+X-1,)*,2,D.,(,Y-1,)*,80+X,),*,2-1,(4),、设有一个,10,阶的对称矩阵,A,,采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组,B,中,,A00,存入,B0,中,则,A85,在,B,中()位置。,A,32 B,33 C,41 D,65,应用举例:,1,、插入排序。,2,、两个有序线性表的合并。,输入,:,1 4 8 10,2 3 7 9 11 13,输出:,1 2 3 4 7 8 9 10 11 13,3,、两个多项式的合并。,输入:,1+x+2X2-x3-30X5,2x+x2+x3,输出:,1+3x+3x2-30 x5,二、栈,栈的定义,栈是一种,“后进先出”,线性表。,对它的插入和删除都限制地表的同一端进行。这一端叫做栈的“顶”,另一端则叫做栈的“底”。,特点,:,后进先出,(LIFO),、或者先进后出(,FILO,),栈底,3,2,5,进栈,进栈,进栈,出栈,出栈,出栈,不一定进栈结束后才出栈,进出栈可,交叉,进行,【,竞赛试题,】,1,、一个栈的输入顺序为,1,、,2,、,3,、,4,、,5,,下列序列中可能是栈的输出序列是,(),。,(A)54312 (B)24,15,(C)21543 (D)125,3,2,、若已知一个栈的入栈顺序是,1,,,2,,,3,,,,,n,,,其输出序列为,P1,,,P2,,,P3,,,,,Pn,,若,P1,是,n,,则,Pi,是,()(NOIP7),A)i,B)n-1,C)n-i+1,D),不确定,3,、设有一个顺序栈,S,,,元素,S1,S2,S3,S4,S5,S6,依次进栈,如果,6,个元素的出栈顺序为,S2,S3,S4,S6,S5,S1,,,则顺序栈的容量至少应为多少?,3 B)4 C)5 D)6,4,、向顺序栈中压入新元素时,应当()。,A,先移动栈顶指针,再存入元素,B,先存入元素,再移动栈顶指针,C,先后次序无关紧要,D,同时进行,假设栈中表目数的上限为,m,,,所有表目都具有同一类型,stype,,,则可以用下列方式定义栈:,Const,m=,栈表目数的上限;,Var,s,:,array1m of,stype,;,栈,t,:,integer,;,栈顶指针,初始值为,栈的基本操作,栈的基本操作:初始化(,init,)、,进栈(,push,)、出栈(,pop,)和,读取栈顶元素(,top,)。,1,),过程,init(s,t),procedure init;,begin,t:=0;,end;,2),、,过程,push(x),往栈,s,中压入一个值为,x,的数据:,procedure push,(,x,:,stype,),;,begin,t:=t+1,;,st,:=x,;,x,入栈,end,;,Push,3),、函数,pop,从栈中弹出一个元素,function pop,:,stype,;,begin,pop:=,st,;,栈顶元素出栈,t:=t-1,;,指针下移,end,;,pop,4),、函数,top,读栈顶元素,function top,:,stype,;,begin,if t=0 then,writeln,(stack empty,),else top:=,st,;,返回栈顶元素,end,;,top,栈的应用,1,、后缀表达式求值,【,问题描述:,】,后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。,如:,3*(52)+7,对应的后缀表达式为:,3,5,2,-*7,+,。,为表达式的结束符号。,.,为操作数的结束符号。,3,5,2,-*7,+=3,3,*,7,+=9,7,+=16,运算符号:,+,、,-,、*、,/,/,运算只取整数部分。采用,div,即可,【,输入:,】,后缀表达式(长度不超过,100,)。,【,输出:,】,表达式的值。,说明:运算的中间结果与最后的结果数据范围:,-1000000000,,,1000000000,。,【,样例输入:,】,3,5,2,-*7,+,【,样例输出:,】,16,中缀表达式转化为后缀表达式,方法一:不会栈操作,算法分析:,后缀表达式为,A:string,;,数组,S:,保存操作数和中间计算结果。,s,的类型为,longint,。,1),、从左向右处理,a,中的每一个字符:,2),、如果遇到一个操作数,就送入,数组,s,中;,如果遇到一个运算符,就从,数组,s,中取出后面的两个操作数进行计算,然后将计算结果重新放入到数组中。,3),、直到遇到,处理结束。,这时数组中,s,剩下唯一的元素即是计算结果。,方法二:利用栈结构,算法分析:,假设后缀的表达式为,A,,,操作数和计算结果存放在栈,S,中。,1),、从左向右处理,a,中的每一个字符:,2),、如果遇到一个操作数,就送入栈,s,中;,如果遇到一个运算符,就从栈,s,中取出栈顶的两个操作数进行计算,然后将计算结果重新压栈。,3),、直到遇到,处理结束。,这时栈,s,顶的元素即是计算结果。,2,、括号匹配,【,问题描述:,】,判断包含有括号,,,,,,,,,的字符串是否是合法匹配。,例如以下是合法的括号匹配:,(),(),(),(),()(),以下是不合法括号匹配的:,(,)(,(,(),,,(),【,输入:,】,一行,字符串(长度范围:,1,,,200,)。,【,输出:,】,如果字符串中括号匹配是合法的输出“,yes”,,不合法的输出“,no”,。,【,样例,1,输入:,】,abcabbmaa,【,样例,1,输出:,】,yes,【,样例,2,输入:,】,abcabbmaa,【,样例,2,输出:,】,no,分析:,遇到左括号进栈;,遇到右括号,出栈,看是否和右括号匹配,如果匹配继续看下一个括号,否则停止,输出,no,即可。,栈底,3,2,5,进栈,进栈,进栈,出栈,出栈,出栈,3,5,2,栈顶,加入一个数,4,取出栈顶元素,再取出栈顶元素,6,栈底,
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:第十二讲:线性结构(线形表、栈和队列).ppt
    链接地址:https://www.zixin.com.cn/doc/13094211.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork