各位大哥请帮帮忙啊!
vood 2003-08-30 03:00:12 小弟近日看到一个关于数组的问题,是在是不明白
请各位大哥指点以下啊!!
题目是:设有n行n列两维数组,因其下三角元素全为零,不再存储其下三角的零元素,只将其上三角的元素按行优先存储于一维数组中。编制一个函数,要求函数在不引入工作数组情况下,将按行优先存储的上三角元素改为按列优先存储。
设 n=5,下三角元素全为0的两维数组a为
inta[][5]={{1,2,3,4,5},
{0,6,7,8,9},
{0,0,10,11,12},
{0,0,0,13,14},
{0,0,0,0,15}};
不存储它的下三角0元素,按行优先存储于一维数组b中,b为
int b[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
函数在不使用工作数组情况下,讲使b的值成为:
{1,2,6,3,7,10,4,8,11,13,5,9,12,14,15}
书上说,函数是对数组元素的存储位置作调整,全部调整元素存在若干循环传送链。
但是,我还是很不理解。到底循环传送链是怎么实现的呢?
呵呵,其实是程序员教程上面的例题,不要见笑啊,呵呵