【发布时间】:2013-09-08 20:00:39
【问题描述】:
我有一个包含 26 个英文字母字符的数组。说:
char a[26] = ['a','b','c','d'.......so on till ....'z']
我需要以圆形方式(可以顺时针或逆时针)移动数组中的元素。
我知道存在一种称为循环数组的数据结构,但它是单向的。
说,我想将数组中的每个元素向前移动 3 个元素,那么新数组应该是:
char new[26] = ['x','y','z','a','b'... and so on till 'w']
但是,我可能还想将元素向后移动 2 个元素,那么我的新数组应该是:
char new[26]=['c','d','e'....and so on... 'y','z','a','b']
所有这些都应该在不使用指针的情况下完成(因为我还没有读过指针)。
有什么方法可以实现吗?
我已经搜索了很多关于循环数组的内容,但我从未意识到简单数组可以用作循环数组并且可以向前和向后移动元素。有人可以告诉我是否有办法做到这一点?
数组大小是固定的。
我们用 C 编码
【问题讨论】:
-
请向我们展示您的代码。
-
没有什么能比得上圆形数组......你必须让你的数组表现得像这样。
-
如果索引不是你的指针,我建议使用以 26 为模向前或向后移动的索引。
标签: c arrays algorithm circular-buffer