首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在fortran 2003-2008中实现链表

如何在fortran 2003-2008中实现链表
EN

Stack Overflow用户
提问于 2011-12-28 04:06:23
回答 1查看 6.3K关注 0票数 6

我需要在fortran 2003/2008中为我的分子动力学代码实现一个链表数据结构。我使用的是最新的fortran编译器(英特尔)。

如何以最好的方式实现链表?如果可能的话,我更喜欢用Fortran实现无锁无等待的实现。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 04:50:29

如果使用数据项和指向下一项的指针创建用户定义的类型,这将是最简单的。这是假设一个单链表。例如,

代码语言:javascript
运行
复制
   type MyList_type
      integer :: FirstItem
      real :: SecondItem
      etc
      type (MyList_type), pointer :: next_ptr => null ()
   end type MyList_type

然后用"allocate“创建第一个成员。然后编写遍历列表的代码,使用next_ptr遍历列表。使用"associated“内部函数来测试是否已经定义了next_ptr,或者您已经到达列表的末尾。

如果你正在写一个普通的顺序Fortran程序,那么无锁/无等待不是问题。如果您正在编写多线程/并行程序,那么对变量的一致访问是一个问题。

这里有一些更多的例子:http://fortranwiki.org/fortran/show/Linked+list。更好的是,Fortran中的链表在Metcalf和Reid的"Fortran 90/95解释“一书中有明确的解释。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8648779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档