Fortran - ポインタを使用した連結リスト!
Updated:
今回は、 Fortran95 でポインタを使用して連結リストを生成する方法についてです。
0. 前提条件
- LMDE2(Linux Mint Debian Edition 2; 64bit) での作業を想定。
- GCC 6.3.0 (GFortran) でのコンパイルを想定。
- Fortran には長けていないので、コードに誤りがあるかもしれない。
1. Fortran コードの作成
File: linked_list_by_pointer.f95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
!****************************************************
! 整数値を格納する連結リスト
! : pointer を使用する
!
! date name version
! 2017.05.17 mk-mode.com 1.00 新規作成
!
! Copyright(C) 2017 mk-mode.com All Rights Reserved.
!****************************************************
!
program linked_list
implicit none
type node
type (node), pointer :: next_node
integer value
end type node
integer num
type (node), pointer :: first_node, new_node, p
nullify (first_node)
do
print *, '0 か正の整数を入力してください(負の整数で終了):'
read *, num
if (num < 0) exit
allocate (new_node)
new_node%next_node => first_node
new_node%value = num
first_node => new_node
end do
p => first_node
print *, "================================"
do while (associated(p))
print *, p%value
p => p%next_node
end do
end program linked_list
2. コンパイル
$ gfortran linked_list_by_pointer.f95 -o linked_list_by_pointer
3. 実行
$ ./linked_list_by_pointer
0 か正の整数を入力してください(負の整数で終了):
30
0 か正の整数を入力してください(負の整数で終了):
20
0 か正の整数を入力してください(負の整数で終了):
10
0 か正の整数を入力してください(負の整数で終了):
0
0 か正の整数を入力してください(負の整数で終了):
-1
================================
0
10
20
30
学生時代に使用した Fortran (当時は大文字の FORTRAN77 )を思い出すべく、簡単なコードを書いてみた次第です。(当時覚えたことはほとんど忘れているので、初心者レベル)
少し前に円周率計算を行ったことはありますが、いずれは、他の複雑な計算等も行ってみたいと考えております。
以上。
Comments