回 帖 发 新 帖 刷新版面

主题:怎样使用指针实现增删一维数组元素呢?

比如我申请大小为5的一维数组A(5),现在想增加数组长度到10,再缩减长度到8,该怎么实现呢?可以的话能给个简要代码吗?谢谢啦

回复列表 (共11个回复)

沙发

有人能支招吗?

板凳

指针实现动态数组功能, 这个书有吧...

3 楼

对于Fortran,暂时您只能如此:
申请一个新的空间,并将原来的数据放到新空间中。

还有一招是内外存交换。
将原数组数据写到文件中。
然后新申请一数组,并将原数据读入。

4 楼

[quote]指针实现动态数组功能, 这个书有吧...[/quote]
Fortran95书上有,但是看了半天不太明白~

5 楼

[quote]对于Fortran,暂时您只能如此:
申请一个新的空间,并将原来的数据放到新空间中。

还有一招是内外存交换。
将原数组数据写到文件中。
然后新申请一数组,并将原数据读入。[/quote]
这样在操作次数多的时候势必浪费时间啊
指针不是能够解决么

6 楼

一维串行结构,Fortran95书上有详细介绍

7 楼

[quote]一维串行结构,Fortran95书上有详细介绍[/quote]
谢谢,我看到了,只是看不太懂,感觉写的好复杂,不知道有没简单点的代码。

8 楼

用链表实现,我已经用链表实现二叉树了,你可以参看这个声明:
module list_stuff
    type llist
        integer index                ! data
        type(llist),pointer::next    ! pointer to the
                                     ! next element
    end type llist
end module
具体链表操作,google搜索

9 楼

[quote]用链表实现,我已经用链表实现二叉树了,你可以参看这个声明:
module list_stuff
    type llist
        integer index                ! data
        type(llist),pointer::next    ! pointer to the
                                     ! next element
    end type llist
end module
具体链表操作,google搜索[/quote]
就是链表操作看不太明白,有最简单的代码吗?

10 楼

fortran不適合使用這樣的數據類型,因為它太費內存了,根本就不實用。
如果你只是在學習數據結構,那就硬著頭皮看吧!
否則建議還是忽略這東西吧,對于fortran真的很不適合。

我来回复

您尚未登录,请登录后再回复。点此登录或注册