Fortran Coder

查看: 6212|回复: 3
打印 上一主题 下一主题

[指针] 用Fortran怎么实现尾插法

[复制链接]

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
楼主
发表于 2017-2-20 10:05:46 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
!  主程序
program T
implicit none
type node
    real val
    type(node),pointer :: P
end type
type(node),pointer :: pHead=>null(), pTail=>null(), pTemp=>null()  !指针置空
integer istat, num, i
real rTemp

nullify(pHead, pTail, pTemp )  !断开关联(置空)
open(1,file='1.txt')
num = 0
do  !循环读取数据
    read(1,*,iostat=istat) rtemp
    if(istat/=0) exit
    num =num + 1
    if( .NOT.associated(pHead) ) then  !第一个数据
        allocate(pHead)  !分配空间
        pTail => pHead    !pHead、pTail均指向第一个数据
        !nullify(pTail.P)
        phead.val =rTemp
    else
        allocate(pTail.P)
        pTail => pTail.P
        !nullify(pTail.P)
        pTail.val =rTemp
    end if
end do
close(1)
if( associated(pTail) ) nullify(pTail.P)  !如果有数据,最后一个节点的指针置空
print*,num
do i=1,num  !循环输出
    !if( .NOT.associated(pHead) ) exit
    write(*,*) pHead.val
    pTemp => pHead
    pHead => pHead.P
    deallocate(pTemp)  !销毁数据
end do
pause
end program T
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 17:50

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表