数据的链式存储与组织广东教育出版社严灿洪23数据的链式存储与组织课件_第1页
数据的链式存储与组织广东教育出版社严灿洪23数据的链式存储与组织课件_第2页
数据的链式存储与组织广东教育出版社严灿洪23数据的链式存储与组织课件_第3页
数据的链式存储与组织广东教育出版社严灿洪23数据的链式存储与组织课件_第4页
数据的链式存储与组织广东教育出版社严灿洪23数据的链式存储与组织课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家中小学课程资源2.3

数据的链式存储与组织年级:高一年级学科:信息技术(粤教版)主讲

人:严灿洪学校某省市塘厦中学问题导入数据存储顺序结构链式结构数组链表新知学习5:指针与指针变量所谓指针,就是指某个内存单元的地址。C++语言中定义指针变量的一般形式为:类型说明符

*变量名;例如:int*pi;float

*pf;//定义一个整型指针//定义一个浮点型指针string

*ps; //定义一个字符串指针struct

wareInfo

*pware;

//定义一个结构类型指针指针与指针变量为弄清指针的本质含义,首先要理解变量是什么。定义一个变量,其实就代表分配计算机内存中的一个存储单元用于存储数据,变量名通常就代表所存储的数据。但是,如果我们在变量名前面使用“&”运算符(取地址运算符),则表示获取变量对应存储空间的地址。例如:int

a=42;int

*pi;pi=&a;//定义一个变量a用于存储整数42//定义一个整型指针变量pi//pi指向a的内存地址指针与指针变量pi=&a;

//表示pi指向a所在的内存地址0x400010//*pi代表它所指向a所存储的值42例如:int

a=42;int

*pi;pi=&a;指针与指针变量如果想修改它所指向的存储单元中的数据,则应该在变量名前加个“*”,如下所示:int

a,b;int

*pi;pi=&a;

//pi指向变量a所在的内存地址*pi=88;

//*pi代表它所指向的存储单元的值,即变量a的值//该语句实际是修改变量a的值为88pi=&b;

//pi指向变量b所在的内存地址*pi=126;

//*pi代表它所指向的存储单元的值,即变量b的值//该语句实际是修改变量b的值为126注意事项如果将指针变量赋值为一个具体的数值,通常会导致程序出现错误。假如将上面的语句“*pi=126”改成“pi=126”,则在后续访问指针变量pi时可能会引起内存访问错误。区别:*pi是一个值;pi是一个地址;分析以下代码的输出结果。探究活动3#include

<iostream>usingnamespace

std;int

main(){int

a=22,b=33;int

*pi;pi=&a;*pi=*pi+35;pi=&b;*pi=0;cout<<"a="<<a<<",*pi="<<*pi;}//把a的值修改为22+35=57//把b的值修改为0//a=57,*pi=0新知学习6:链表链表由一系列结点组成,结点可以动态生成。每个结点包括两个部分:一个是存储数据的数据域,另一个是存储下一个结点物理地址的指针域。数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表有多种不同的类型,如单向链表、单向循环链表、双向链表、双向循环链表等,本节我们学习的是单向链表。定义链表结点的结构因为链表是由若干个结点链接而成的,每个结点都具有相同的结构,因此我们定义链表的结构时只需要定义链表结点的结构即可。以下是链表结点的类型定义://定义链表结点的结构struct

LinkNode{string

data;

//结点数据LinkNode

*next;

//下一结点指针};typedef

struct

LinkNode

*LinkList;typedef

类型声明

类型别名;LinkList

L=NULL;

//定义链表头指针新知学习7:链表的基本操作对于链表,通常有创建空链表、插入结点、删除结点、取得结点这几种操作。通过对链表的操作,可以实现以链表为存储结构的数据的各种组织和管理功能。指针变量

=

new类型说明符;delete

指针变量;申请和删除链表结点的代码如下所示:LinkNode

*p; //链表结点指针p=new

LinkNode;

//申请一个链表结点空间deletep;p=NULL;//释放结点所占用的空间//释放空间后将变量置为空指针链表的基本操作如图2-11所示是单向链表的几种基本操作示意图。探究活动4创建一个空链表请同学们细读教材中表2-10所示的程序代码。探究单向链表创建空链表、插入结点、删除结点和取结点元素的基本操作探究活动4插入新的结点1探究活动4插入新的结点2探究活动4删除结点探究活动4取得第i(i>0)个元素我们已经利用数组实某省市商品的基本信息及库存的管理,下面我们尝试使用链表作为数据结构来某省市各类商品的进货及销售信息,并通过对链表的不同操作来实现商品管理系统对商品的进货及销售管理功能。程序实现功能如下:在定义商品销售链表结构的基础上完成商品销售信息初始化,即建立商品销售空链表。当有商品售出时,根据商品编号对商品销售链表进行插入结点操作。当有误操作时,根据商品编号对商品销售链表进行删除结点操作。根据商品编号,查询某商品的销售情况,即对商品销售链表进行取结点操作。探究活动5知识小结数据存储顺序结构链式结构数组链表项目实施各小组根据项目选题及拟订的项目方案,结合2.2节和2.3节所学知识,讨论以下问题,并编程实现所选定项目的信息化管理功能。针对信息化管理中的各个不同功能,分别适合使用数组还是链表来存储与组织数据?如何通过定义数组和链表,以及实施相应操作,实现信息化管理中的各个功能?进一步对比分析使用数组和使用链表在现实数据的存储与组织上的异同。数据的链式存储与组织新知学习探究与实践项目实施指针与指针变量定义链表结点的结构链表的基本操作分析指针与指针变量程序的输出结果链表实现对商品的进货及销售管理功能用链表实现对商品的进货及销售管理功能课堂小结单选题:单向链表与数组都属于线性表,它们都是用于存储具有相同属性的数据,下列说法不正确的一项是(

)。A.数组适合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论