【正文】
next end type node !鏈表的建立,以 0作為建表結(jié)束 type(node),pointer :: current , L integer :: num read(*,*) num NULLIFY( L )!L指向一個(gè)空對(duì)象 allocate(current) current%value=num L=current do while (num/=0) read(*,*) num if(num/=0) then allocate(current) current%value=num current%next=L L=current end if end do current=L !鏈表的輸出過程 write(*,*) current%value current=current%next do while(associated(current)) write(*,*)current%value current=current%next end do end program ex_6 Associated是 fortran90提供的內(nèi)部函數(shù),其作用是判斷參數(shù)是否是關(guān)聯(lián)狀態(tài),也就是指針是否已經(jīng)作為其他對(duì)象的別名。 注意:鏈表有一個(gè)表頭和一個(gè)表尾,由于 FORTRAN語言中指針實(shí)際上就是一個(gè)別名,不同于 C語言中的指針( C中的指針代表內(nèi)存地址),因此沒有明確的空指針的概念,鏈表的訪問方式只能從最后一個(gè)結(jié)點(diǎn)開始,到第一個(gè)結(jié)點(diǎn),通過檢查鏈表是否再被連接作為結(jié)束標(biāo)識(shí),例 表過程如下圖所示。