zoukankan      html  css  js  c++  java
  • 【旧代码】fortran中的指针实现链表的代码

    我不喜欢fortran,

    奇怪的词法规则(竟然不用空格分开token),

    io操作竟然是语言的一部分(这种非本质的东西像C那样用库来扩展多好)

    。。。

     1 program link
     2 implicit none
     3 type node
     4     character(20) name
     5     integer id
     6     integer score
     7     type(node),pointer ::next
     8 end type
     9 
    10 integer,parameter::num=3
    11 type(node),pointer ::students
    12 
    13 call init_all(students,num)
    14 call show_all(students)
    15 print*,"now,we add a student"
    16 call add_node(students)
    17 call show_all(students)
    18 print*,"now,we delete the student"
    19 call del_node(students)
    20 call show_all(students)
    21 
    22 
    23 contains 
    24 subroutine add_node(pos)
    25 type(node),pointer ::pos,tmp
    26 allocate(tmp)
    27 tmp%name="abc"
    28 tmp%id=1
    29 tmp%score=100
    30 print*,"please input name,id,end score of one students"
    31 read*,tmp%name,tmp%id,tmp%score
    32 if(associated(pos%next)) then
    33 tmp%next=>pos%next
    34 pos%next=>tmp
    35 else 
    36 nullify(tmp%next)
    37 pos%next=>tmp
    38 end if
    39 end subroutine
    40 
    41 subroutine del_node(pos)
    42 type(node),pointer ::pos,next
    43 next=>pos%next
    44 if(associated(next%next)) then
    45 pos%next=>next%next
    46 deallocate(next)
    47 else
    48 nullify(pos%next)
    49 deallocate(next)
    50 end if
    51 end subroutine
    52 
    53 subroutine show_all(pos)
    54 type(node),pointer ::pos,tmp
    55 integer ::cnt
    56 cnt=1
    57 print*,"all students are:"
    58 tmp=>pos
    59 do while(associated(tmp))
    60 print*,cnt,"th ",tmp%name,tmp%id,tmp%score
    61 tmp=>tmp%next
    62 cnt=cnt+1
    63 end do
    64 end subroutine
    65 
    66 subroutine init_all(pos,num)
    67 type(node),pointer ::pos,tmp,walk
    68 integer num
    69 integer i
    70 
    71 allocate(tmp)
    72 nullify(tmp%next)
    73 call add_node(tmp)
    74 pos=>tmp%next
    75 deallocate(tmp)
    76 walk=>pos
    77 do i=1,num-1
    78 call add_node(walk)
    79 walk=>walk%next
    80 end do
    81 end subroutine
    82 
    83 end program link


    我很少讨厌某种技术,坦诚的说,关于fortran,是有其他因素参合进来了。

  • 相关阅读:
    mac安装mysql 8.0.20
    leetcode之两数之和
    家人闲坐,灯火可亲汪曾祺散文集读书笔记
    java入门知识代码练习
    苏世民:我的经验与教训读后感
    java入门知识
    创业者日志——易居cms产品有什么不同的地方?
    易优CMS:channelartlist 获取当前频道的下级栏目的内容列表
    房产小程序可以实现什么功能?有什么优势?怎么推广小程序?
    房产中介是否需要用管理系统?哪个房产中介管理软件好?
  • 原文地址:https://www.cnblogs.com/windydays/p/2298099.html
Copyright © 2011-2022 走看看