线性结构 数组栈队 讲解.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 之 线性结构 ;数据结构;一、线性表 ;线性表的存储结构;顺序存储结构; 1.数组存储的结构在数组声明时就需要事先分配相应的连续内存空间用来存放数据。 2.按首地址(表中第一个元素的地址)的位移来访问数组每一个元素的。 若第一个元素的地址是a,每个元素占用的存储空间为L,则数组的第i个元素的地址? d(i)=a+(i-1)*L;一维数组的赋值与输出;顺序存储结构;已知数组中A中,每个元素A(i,j)在存贮时要占3个字节,设i从1变化到8,j从1变化到10,分配内存时是从地址SA开始连续按行存贮分配的。 试问:A(5,8)的起始地址为(  ) A.SA+141   B. SA+180 C. SA+222  D. SA+225 按行存贮分配 先计算数组元素a(5,8)前面共有几个元素? 4*10+7=47 47*3=141 因此,起始地址为SA+141;二数维组的赋值与输出;顺序结构的应用;【分析】: (1) 用数组door[1..100]来存储1到100号房门的开关状态,即是一种线性表,其中:door[1]可以看成是头结点,而door[100]是尾结点;同时由于数组在内存中是按顺序占有一片连续的内存空间,因此这种存储结构即是顺序存储结构。 ;var door:array[1..100] of boolean; i,j:integer; begin fillchar(door,sizeof(door),true); {第一个服务员打开全部房门} for i:=2 to 100 do {i表示服务员号码} for j:=1 to 100 div i do door[i*j]:=not door[i*j]; {对房号为i的倍数的房门进行相反处理} write(The code of opening door is : ); for i:=1 to 100 do if door[i] then write(I, ); end. ;链式结构及其应用;单链表及其操作:;(1)动态建立单链表;Procedure creatlink(var head:point); begin head:=nil; for i:=n downto 1 do begin new(p); P^.data:=a[i]; P^.next:=head; head:=p; end; new(p); p^.next:=head; head:=p; end;;(2)插入操作;在单链表的第i个结点插入元素X。 head指向哨兵的首指针。;(3)删除操作;删除单链表的第i个结点。;(4)读取单链表元素;线性表若采用链表存贮结构,要求内存中可用存贮单元地址(  ) A. 必须连续   B. 部分地址必须连续 C. 一定不连续  D. 连续不连续均可 ;二、栈及特点;栈的基本运算;栈的基本运算;栈的基本运算;实例分析;实例分析;实例分析;;栈的重要运用:计算表达式的值;利用栈实现转换和计算;program express; const max=255; type stack=array[1..max] of char; var s1,s2:string; i,j,t,l:longint; s:stack; ch:char; a1,a2:longint;;procedure push(ch:char;var t:longint); begin if tmax then begin t:=t+1; s[t]:=ch; end; end; function pop(var t:longint):char; begin if t0 then begin pop:=s[t]; t:=t-1; end; end; function top(var t:longint):char; begin if t0 then top:=s[t]; end;;begin readln(s1); s2:=; t:=0; for i:=1 to length(s1) do case s1[i] of 0..9:s2:=s2+s1[i];

文档评论(0)

kfcel5889 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档