主题:怎样使用指针实现增删一维数组元素呢?
tianzhen2010
[专家分:0] 发布于 2010-07-25 22:14:00
比如我申请大小为5的一维数组A(5),现在想增加数组长度到10,再缩减长度到8,该怎么实现呢?可以的话能给个简要代码吗?谢谢啦
回复列表 (共11个回复)
板凳
yeg001 [专家分:14390] 发布于 2010-07-30 12:15:00
指针实现动态数组功能, 这个书有吧...
3 楼
cgl_lgs [专家分:21040] 发布于 2010-07-30 13:17:00
对于Fortran,暂时您只能如此:
申请一个新的空间,并将原来的数据放到新空间中。
还有一招是内外存交换。
将原数组数据写到文件中。
然后新申请一数组,并将原数据读入。
4 楼
tianzhen2010 [专家分:0] 发布于 2010-07-31 09:11:00
[quote]指针实现动态数组功能, 这个书有吧...[/quote]
Fortran95书上有,但是看了半天不太明白~
5 楼
tianzhen2010 [专家分:0] 发布于 2010-07-31 09:12:00
[quote]对于Fortran,暂时您只能如此:
申请一个新的空间,并将原来的数据放到新空间中。
还有一招是内外存交换。
将原数组数据写到文件中。
然后新申请一数组,并将原数据读入。[/quote]
这样在操作次数多的时候势必浪费时间啊
指针不是能够解决么
6 楼
zinsser_1982 [专家分:400] 发布于 2010-07-31 12:58:00
一维串行结构,Fortran95书上有详细介绍
7 楼
tianzhen2010 [专家分:0] 发布于 2010-07-31 18:26:00
[quote]一维串行结构,Fortran95书上有详细介绍[/quote]
谢谢,我看到了,只是看不太懂,感觉写的好复杂,不知道有没简单点的代码。
8 楼
xsxcn [专家分:0] 发布于 2010-08-07 11:13:00
用链表实现,我已经用链表实现二叉树了,你可以参看这个声明:
module list_stuff
type llist
integer index ! data
type(llist),pointer::next ! pointer to the
! next element
end type llist
end module
具体链表操作,google搜索
9 楼
tianzhen2010 [专家分:0] 发布于 2010-09-21 22:20:00
[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 楼
cgl_lgs [专家分:21040] 发布于 2010-09-22 15:37:00
fortran不適合使用這樣的數據類型,因為它太費內存了,根本就不實用。
如果你只是在學習數據結構,那就硬著頭皮看吧!
否則建議還是忽略這東西吧,對于fortran真的很不適合。
我来回复