以前我们学习数组的时候是有开始点跟结束点的线性数组,有一种数组是没有明确结束点的数组,任何一点都可以是开始点又可以是结束点,这种数组是循环数组。如下图:

我们先来解决下面几个问题:
问题一:如何保存循环数组呢?
方法很简单循环数组的保存方法跟一维数组的保存方法相同,只不过为了下面处理方便下标从0开始。
例如一个数组里面保存了1—7:0
| 1
| 2
| 3
| 4
| 5
| 6
|
1 | 2
| 3
| 4
| 5
| 6
| 7
|
问题二:如何从某一点起遍历访问所有元素,例如:从下标3开始,依次访问3 4 5 6 0 1 2 单元呢?
其实问题很简单,要解决的就是访问到最后一个元素怎么返回第一个单元。

方法二:
const max=256;
var
a:array [0..max] of integer;
count,i,n,k,j:integer;
begin
readln(n);
for i:=0 to n-1 do
a:=i+1;
count:=0;i:=3;
while count<n do
begin
write(a,’’);
count:=count+1;
i:=(i+1) mod n;
end;
end. |