- 3
- 0
- 约8.17千字
- 约 12页
- 2019-07-10 发布于江西
- 举报
好风光好风光恢复供货才
信息学奥赛数据结构教程PASCAL版
第三课 链表
存储方式的分类:顺序存储结构和链式存储结构;顺序存储结构:在(子)程序的说明部分就必须加以说明,以便分配固定大小的存储单元,直到(子)程序结束,才释放空间。因此,这种存储方式又称为静态存储。所定义的变量相应的称为静态变量。它的优缺点如下: 1. 优点:可以通过一个简单的公式随机存取表中的任一元素,逻辑关系上相邻的两个元素在物理位置上也是相邻的,且很容易找到前趋与后继元素; 2. 缺点:在线性表的长度不确定时,必须分配最大存储空间,使存储空间得不 到充分利用,浪费了宝贵的存储资源;线性表的容量一经定义就难以扩充;在插入和删除线性表的元素时,需要移动大量的元素,浪费了时间; 链式存储结构:在程序的执行过程中,通过两个命令向计算机随时申请存储空间或随时释放存储空间,以达到动态管理、使用计算机的存储空间,保证存储资源的充分利用。这样的存储方式称为动态存储。所定义的变量称为动态变量。它的优点如下: 1. 优点:可以用一组任意的存储单元(这些存储单元可以是连续的,也可以不连续的)存储线性表的数据元素,这样就可以充分利用存储器的零碎空间; 2. 概念1:为了表示任意存储单元之间的逻辑关系,对于每个数据元素来说,除了要存储它本身的信息(数据域、data)外,还要存储它的直接后继元素的存储位置(指针域、link或next)。我们把这两部分信息合在一起称为一个“结点node”。 3. 概念2:N个结点链接在一起就构成了一个链表。N=0时,称为空链表。 4. 概念3:为了按照逻辑顺序对链表中的元素进行各种操作,我们需要定义一个变量用来存储整个链表的第一个结点的物理位置,这个变量称为“头指针、H或head”。也可以把头指针定义成一个结点,称为“头结点”,头结点的数据域可以不存储任何信息,也可以存储线性表的长度等附加信息,头结点的指针域(头指针)存储指向第一个结点的指针,若线性表为空表,则头结点的指针域为空(NIL)。由于最后一个元素没有后继,所以线性表中最后一个结点的指针域为空(NIL)。 5. 概念4:由于此链表中的每个结点都只包含一个指针域,故称为“线性链表或单链表”。 (一)指针类型和指针变量的说明、使用、操作1.类型和变量的说明 type 指针类型标识符= ^基类型名; {基类型不能为文件类型} var 指针变量名:指针类型标识符;2.申请存储单元 {动态申请、空间大小由指针变量的基类型决定} new(指针变量名); {PASCAL标准过程}3.指针变量的赋值 指针变量名:=NIL; {初始化,暂时不指向任何存储单元} 如何表示和操作指针变量?不同于简单变量(如A:=0;),PASCAL规定用“指针变量名^”的形式引用指针变量(如P^:=0;)。如下图:4.相同基类型的指针变量之间可以进行相互赋值
如有下面的程序段,可以画出右边的示意图: var p1,p2:^integer; new(p1);new(p2); p1^:=90;p2^:=80; p1:=p2;5.关系运算 如:if p1=p2 then …… while p nil do ……
6.释放动态存储单元 dispose(指针变量名);(二)单链表的结构、建立、输出 由于单链表的每个结点都有一个数据域和一个指针域,所以,每个结点都可以定义成一个记录。比如,有如下一个单链表,如何定义这种数据结构呢? type pointer=^nodetype; nodetype=record data:datatype; next:pointer; {嵌套定义} end;var head,p,q,r:pointer; 下面给出建立并输出单链表的程序,大家可以把它改成过程用在以后的程序当中。Program creat;type pointer=^nodetype; nodetype=record data:integer; next:pointer; end;var head,p,r:pointer;{r指向链表的当前最后一个结点,可以称为尾指针} x:integer;begin writeln(please input num(-1 is end):); read(x); new(head); {申请头结点} head:=nil; {头结点初始化} r:=head; while x-1 do {读入的数非-1} begin new(p); {则,申请一个新结点} p^.data:=x; p^.next:=nil; r^.n
您可能关注的文档
最近下载
- GB-T 14667.1-1993 粉末冶金铁基结构材料 第一部分.pdf
- ICH Q6A-中文版--规范:用原料药和新药的测试方.pdf VIP
- 2025年广西专升本人体解剖学考试真题及参考答案.docx VIP
- 丰田highlander维修手册有电路cinavi75.pdf VIP
- 330kV变电站施工组织实施方案(最全).doc VIP
- SHS 01009—2019 管壳式换热器维护检修规程.docx VIP
- 江苏省苏州市2024-2025学年高二上学期期末英语试卷(含答案,无听力原文及音频).pdf VIP
- 《过新年穿新衣》小学少儿美术教育PPT绘画课件创意教程教案.pptx VIP
- 【++高中语文+】期末考试复习纲要+课件++高一+统编版高中语文必修上册.pptx VIP
- 2025年中考语文总复习第二部分文学之约专题五文学类文本读写(核心考点突破).pptx VIP
原创力文档

文档评论(0)