《数据结构[Python语言描述]》教案第4课线性表(2.3).docx
《《数据结构[Python语言描述]》教案第4课线性表(2.3).docx》由会员分享,可在线阅读,更多相关《《数据结构[Python语言描述]》教案第4课线性表(2.3).docx(7页珍藏版)》请在优知文库上搜索。
1、课题第4课线性表(23)课时2课时(90min)教学目标知识目标:(1)掌握单链表和双链表的结构特点及其基本操作的实现(2)理解循环链表的特点技能目标:能使用线性表解决实际问题素质目标:增强主动思考、积极寻求问题解决方法的意识教学重难点教学重点:单链表和双链表的结构特点及其基本操作、循环链表的特点教学难点:单链表和双链表的结构特点及其基本操作教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入(5min)【教师】提出以下问题:如你螂链式存储?【蚂思考、传授新知【教师】通过学生的
2、回答引入要讲的知识,介绍单链表和双链G的特点2.3线性表的链式存储一链表线性表的链式存储是指,用一组地址任意的存储单元依次存f单元可以是连续的,也可以是不连续的。采用链式存储结构的线t链表又可以分为单链表、双链表和循环链表等。2.3.1 单链表1.单链表的结构特点在线性表的链式存储结构中,为了表示每个元素与其后继元彳本身的数据信息外,还要存储一个指示其后继元素地址的信息,1的存储结构,称为结点(node)。莅的结构特点及其基本操作、循环链表谱线性表中的各个数据元素,这些存储生表称为链表。黄之间的逻辑关系,除了需要存储元素区两部分信息共同构成了一个数据元素datanext其中,存储元素本身?域(
3、next)单链表(也称线性链其中每个结点只包含一个象据信息的部分称为数据域(data),存储其后继元素地址信息的部分称为指针麦)是指将n个数据元素通过其对应结点的指针域按其逻辑关系链接成的链表,数据域和一个指针域.“014.On-head.F其中,head称为头指针,用于指向单链表的第一个结点(也称首元结点)。由于单链表的最后一个结点没有后继元素,所以其指针域为空(None),用符号人表示。【提示】在Python中并不存在指针的概念,此处的指针属性实际上存放的是后继结点的引用,但为了表述datanext方便仍然采用指针一词。【教师】讲解实例2-4(详见教材)在单链表中,逻辑上相邻的两个数据元素
4、,其存储的物理位置不一定相邻,每个数据元素的存储地址都存放在其前驱结点的指针域中。要想取得第/个结点,必须从头指针出发按照顺序依次在单链表中寻找,因此,线性表的链式存储结构是一种顺序存取的存储结构。为了操作方便,通常在单链表的第一个结点之前增加一个头结点。单链表的头指针指向头结点,头结点的数据域可以不存储任何数据信息,也可以存储与线性表中瘫元素类型相同的其他附加信息。头结点的指针域存储第一个结点的地址信息。.(详见教材)【高手点拨】为避免读者对首元结点、头结点和头指针的概念产生混淆,下面分别对其进行解释说明。(1)首元结点是指链表中存储第一个数据元素的结点。(2)头结点是在首元结点之前增加的一
5、个结点,其指针域指向首元结点。.(详见教材)2.单链表中基本操作的实现1 )初始化单链表初始化单链表就是构造一个空表。步点head【算法描述】classSLinkList:def_init_(self):self.head=Node(None)self.head.next=None2)建立单链表建立单链表是在一个空表中一次性创建多个结点。建立单链表的常用方法有头插法和尾插法两种。(1)头插法是通过将新结点逐个插入单链表中的头结点之后来建立单链表。【教师】用多媒体展示“使用头插法建立单链表”图(详见教材),并介绍算法描述使用头插法建立单链表可分为如下6步。建立艮有头结点的空表。生成第一个结点s.
6、其中,新结点的数据域存储数据元素的数据信息,指针域为None将第一个结点插入头结点之后.生成新结点%将新结点的指针指向第一个结点(s,nexl=head,nex(),然后将头结点的指针指向新结点S(head.nex(=s)0重复步骤和,直到单链表生成完毕.【算法描述】详见教材【提示】上述算法中的语句==S的顺序不能颠倒。若先执行语句head.next=S,再执彳谴句=head.next,会找不到结点a,此时相当于执行语句s.next=s,插入操作将出现错误.(2)尾插法是通过将新结点逐个插入单链表的尾部来建立单链表。*【教师】用多媒体展示“使用尾插法建立单链表”图(详见教材),并介绍算法描述使
7、用尾插法建立单链表可分为如下3步。建立只有头结点的空表,并增加指针t,使其指向头结点。从线性表的第一个数据元素开始依次获取表中数据元素,并生成一个新结点S0其中,新结点的数据域存储数据元素的数据信息,指针域为Nonee将新结点插入当前链表的表尾,并使指针t始终指向当前链表的尾结点。【算法描述】详见教材【教师】讲解实例2-5(详见教材)3)在单链表中取指定结点的值若要在单链表中取指定结点的值,须从单链表的首元结点出发,然后顺着指针域向后依次访问各个结点.【教师】讲解具体步骤,并介绍算法描述(详见教材)4)在单链表中插入结点单链表的插入操作是指在长度为n的单链表的第i(0in)个位置插入一个值为e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构【Python语言描述 数据结构 Python 语言 描述 教案 线性 2.3