求数组后移的最简单算法

zhuran 发布于 2013/03/06 23:12
阅读 496
收藏 0

例如定义一个结构体 struct_a;然后再定义struct_a  STRUCT_RECORD[128],struct_a  STRUCT_WRITE[128],

STRUCT_WRITE是依次被写入值,从STRUCT_WRITE[0]开始依次写入,然后STRUCT_RECORD中要求STRUCT_RECORD[0]往后,存储STRUCT_WRITE的值,最新的再最前。

求简单写法

for(i=0;i<j;i++)

{

   STRUCT_RECORD[i]=STRUCT_WRITE[j-i];

}

拒绝以上老土写法。

加载中
0
zhuran
zhuran

有没有什么利用指针堆栈 类似这种方式的写法啊 求高手解答


0
excepiton
excepiton
上面那个不是已经很简单了吗?还要指针?堆栈?
0
beves
beves
这种情况下,你就不能倒过来想想,最新的反正都在末尾,从末尾访问不就好,
0
pantrick
pantrick
最简单是更新索引 i=i+1;
0
童学芬
童学芬

引用来自“抓瓦Or”的答案

最简单是更新索引 i=i+1;
i+=1;
0
zhuran
zhuran

引用来自“抓瓦Or”的答案

最简单是更新索引 i=i+1;
恕我愚钝 什么意思?i=i+1??
0
LoveCupid
LoveCupid
还是往后添加,只不过修改读数据的实现,例如,如果record[1],我们可以给它返回record[Len-1]
0
zhuran
zhuran

引用来自“田左俭”的答案

还是往后添加,只不过修改读数据的实现,例如,如果record[1],我们可以给它返回record[Len-1]

不是太理解 能上段代码不? 谢谢

LoveCupid
LoveCupid
struct_a read(int i) { // record就是你那个需要 // 最新的数据放在最前面的数组 // 每次调用这个函数读数据 // 添加的时候还是 // 最新的放在最后面 // // 当然 这只是个偏方 int Len =record.Len return record[Len-i]; }
0
猫哥-u
猫哥-u
实现一个队列,STRUCT_WRITE用队列方式存储,先进先出,保证新的先出队列,先出的先存入STRUCT_RECORD,位号依次从0往后写入。用STL的话,这些都是现成的。
返回顶部
顶部