fortran基础第11章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
fortran基础第11章

* 递归子程序的调用 在主程序中调用递归子程序时,应写明递归子程序的接口块,然后是CALL子程序名[([虚参名表])]。 * 递归子程序的例题 HANOI(汉诺)塔问题(略) * 数组:数组是一种数据结构。数组中所有元素类型相同,引用方式或者给出下标来确定一个元素,或者给出数组名代表所有元素,或者用下标三元组表示数组片段。 派生结构:空间任意一点的坐标可以用三个实数X、Y、Z来描述。但是就FORTRAN语言来说,X、Y、Z之间并无任何联系,只是程序员把这三个变量理解为坐标。如果换一种方式来表述点的坐标:把三个实型数据结合在一起,形成一个新的数据类型COORDINATE,这个类型就是派生类型。 链表结构:由派生结构定义一个节点,包含一个指针。 * 可以看出: 每个结点有两个域,即数据域(这里是一个数值)和指针域(用箭头表示)。 链表的第一个结点称为表头,指向表头的指针称为头指针。 最后一个结点称为表尾,它的结点指针域为空指针。 * 这里,第一句将当前结点current指向原链表的头结点,第二句将链表头指针指向当前插入的结点current,即结点current为现在链表的头结点。 * 删除的过程就是让前一个结点的指针绕过此结点指向下一个结点,然后释放这个结点的空间。例如,我们要在图11-6中,删除数值为27的结点,且经过搜索Q已经指向该结点,P指向它前面的一个结点。 * 删除的过程就是让前一个结点的指针绕过此结点指向下一个结点,然后释放这个结点的空间。例如,我们要在图11-6中,删除数值为27的结点,且经过搜索Q已经指向该结点,P指向它前面的一个结点。 * 例如下面的程序将输出逻辑值F PROGRAM TEST IMPLICIT NONE REAL,TARGET,DIMENSION (4)::A=(/1,2,3,4/) REAL, POINTER, DIMENSION (:) :: P, Q P = A (1 : 3) Q = A (2 : 4) PRINT *, ASSOCIATED (P, Q) END * 11.2.6 悬空指针和无法访问的内存 ⒈ 悬空指针 设P1和P2是两个同类型的指针变量,执行下列语句后会导致悬空指针。 ALLOCATE(P2) P1=P2 DEALLOCATE (P2) ⒉ 无名内存 设P1是一个指针变量,A是一个同类型的目标变量,执行下列语句后会导致无名内存。 ALLOCATE(P1) P1=A * 11.3 指针数组 指针数组定义的一般形式为: 数据类型,DIMENSION(:[,:]), POINTER::V 注意: 这里的数组V一定要定义为一个假定形状数组。 有了上面的说明,V可以指向任何一个一维数组,或二维数组。例如有下列语句: REAL,DIMENSION(:),POINTER::P REAL,DIMENSION(5,6),TARGET:: ARR P=ARR (4,:) 使P变成了数组ARR第四行的别名。如果对P执行赋值语句:P= 1,就是将数组ARR的第四行全部设置为1。当然,此处的目标数组ARR必须具有TARGET属性。 * 11.4 链表 11.4.1 链表的概念 链表是结点的序列。 结点:结点也叫数据元素,它是组成数据的基本单位。 结点分为两部分:一部分用于存储数据元素的值,称为数据域;另一部分用于存放下一个数据元素的存储结点的地址,即指向后继结点,称为指针域。 数据域 指针域 * 11.4.1 链表的概念 例如有三个整型数值结点的链表 L HEAD 13 27 39 * 结点的定义 每个结点至少有一个指针,用于指向下一个结点。结点可以用一个派生类型来定义: TYPE NODE INTEGER::VALUE TYPE(NODE),POINTER::NEXT END TYPE NODE * 链表的头结点 头结点:没有数据域,仅有一个指针域。 定义头结点的派生类型只有一个指向NODE类型的指针成员HEAD: TYPE LIST TYPE(NODE),POINTER:: HEAD END TYPE LIST * 链表的尾结点 表尾:由于它没有后继,该结点的后继指针NEXT指向空。 * 11.4.2 链表的创建 创建一个空链表。该链表不含任何结点,其头指针指向空指针。 HEAD * 11.4.2 链表的创建 可以用一个函数子程序NEW()来创建一个空链表: FUNCTION NEW( ) RESULT (NEW_LIST) TYPE(LIST):: NEW_LIST NU

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档