我必须通过某种方法将数百万个编号的三角形分类为不同的正方形(假设有1000个正方形),但我不知道在判断之前有多少个三角形属于某个正方形。所以我需要1000个链表,这样我就可以存储任意长度的相关三角形数量。
但似乎我不能对一个1000元素的头部数组进行decalre以在Fortran(英特尔Visual Fortran 2011)中创建1000个链接列表,并且存在错误:
LoopLinkedList.for(34):错误#7121:ptr dummy可能只是与ptr关联的参数,并且此数组元素或节不继承POINTER 来自其父数组的attr。 [CURRENT]
以下是我测试程序的代码:
module global
type node
integer i
type(node) ,pointer ::next
end type node
end module global
program LinkedList
use global
integer k
interface
subroutine insertItem(pos,item)
use global
implicit none
type(node) ,pointer ::pos,item
end subroutine insertItem
end interface
type(node), pointer::item,head(:),current(:)
allocate(head(1000))
allocate(current(1000))
head(1) = node(1,head(1))
current(1)=head(1)
do k =2,10
allocate(item)
!allocate(current%next)
item%i = k
call insertItem(current(1),item)
current(1) =item
end do
k =current(1)%i
do while(.true.)
write(*,*) current(1)%i
if(.not.associated(current(1)%next)) exit
current(1) =current(1)%next
if(current(1)%i.eq.k)exit
end do
deallocate(head)
deallocate(current)
end program LinkedList
subroutine insertItem(pos,item)
use global
implicit none
type(node) ,pointer ::item,pos
if(associated(pos%next)) then
item%next =>pos%next
pos%next=>item
end if
end subroutine insertItem