fortran90第9章 数据结构 FORTRAN90程序设计 教学课件.ppt

fortran90第9章 数据结构 FORTRAN90程序设计 教学课件.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fortran90第9章 数据结构 FORTRAN90程序设计 教学课件

FORTRAN90程序设计 计算机中心 2008.3 Visual Fortran 90 程序设计 9.1 数据结构 9.1.2 派生类型 结构体变量的定义 9.1.3 派生类型的简单应用 9.2 指针 9.2.1 指针变量的基本概念 9.2.2 指针指向派生类型 9.2.3 动态控制 9.5 数组与指针 9.3 链表 链表的概念 链表是通过结点中的指针成员将若干个具有相同派生类型的结点拉成链,从而对一些在内存中不连续的数据进行动态处理的一种方式。链表中的第一个结点称为头结点,指向头结点的指针称为头指针。该派生类型的成员中至少有一个指向本派生类型的指针,链表中最后一个表目的成员的指针值为空,其余表目的成员的指针均指向下一个表目。为了便于对链表的操作,需要引入另一个派生类型,它用于存放链表的头指针。链表的头指针表示链表的存在与否(头指针为空表示空链表,否则表示链表中至少有一个以上的表目)。如果链表尾结点的指针成员指向了头结点,这样的链表称为“循环链表”。在本章主要讨论单向链表(简称链表)。 二、链表的插入及建立 建立链表的过程就是把一个个结点插入链表的过程。因而建立链表的操作实际上就是不断地插入的过程。 MODULE STU_LIST IMPLICIT NONE TYPE STUDENT_TYPE INTEGER::NUMBER REAL::SCORE TYPE(STUDENT_TYPE),POINTER::NEXT END TYPE STUDENT_TYPE TYPE STUDENT_HEAD TYPE(STUDENT_TYPE),POINTER::HEAD END TYPE STUDENT_HEAD END MODULE STU_LIST 四、删除链表 9.6 指针与过程 例9-15:用指针法访问学生数组(每个学生有姓名、学号 和成绩3项),并输出全体成员(课本)。 例9-15:用指针法访问学生数组(每个学生有姓名、学号 和成绩3项),并输出全体成员(改进:使用指针数组)。 例9-16:用动态控制法完成例9-15的功能。 例9-16:用动态控制法完成例9-15的功能(改进)。 例9-15:用指针法访问学生数组(每个学生有姓名、学号 和成绩3项),并输出全体成员(课本)。 例9-15:用指针法访问学生数组(每个学生有姓名、学号 和成绩3项),并输出全体成员(改进:使用指针数组)。 例9-16:用动态控制法完成例9-15的功能。 例9-16:用动态控制法完成例9-15的功能(改进)。 第二种使用方法: 为指针数组分配内存的语句: ALLOCATE(名(大小)) 例:ALLOCATE(A(1:6)) ALLOCATE(A(2:3,3)) 注意:指针数组的大小在执行期间可动态变化即为动态数组. 例:INTEGER,POINTER::A(:) ALLOCATE(A(5)) A=(/1,2,3,4,5/) PRINT*,A(3) DEALLOCATE(A) END 9.5 数组与指针 链表是指针最常用的编程方法之一。本节通过链表的建立、插入、遍历及删除等操作的 例子,比较详细地介绍了有关链表的概念及其相关操作的实现方法。 链表的定义:由指针将若干个派生类型的数据相连。 (1)头指针(2)结点(3)头结点(4)最后一个结点的指针为空。 结点有三个成员:number,score,next …… NEXT NEXT NEXT NEXT NUL TOP Number Score Number Score Number Score Number Score 链表中结点类型及头指针的类型定义: Module stu_list Implicit none Type student_type Integer::number Real::score Type(student_type),pointer::next End type student_type Type student_head Type(student_type),pointer::head End type student_head End module stu_list 结点的类型定义 头指针的类型定义 9.3 链表 PROGRAM LIST_STUDENT USE STU_LIST INTEGER::NB,NUM TYPE(STUDENT_TYPE)::TEMP_STU TYPE(STUDENT_HEAD)::HEAD_STU NULLIFY(HEAD_STU%

您可能关注的文档

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档