| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:数组的顺序表示和实现
取消只看楼主 加入收藏
雄哥现世
Rank: 1
等 级:新手上路
帖 子:26
专家分:7
注 册:2012-9-25
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:0 
数组的顺序表示和实现

struct SqArray
{
  int * base
  int dim;
  int * bounds;
  int * constants;
  int elemtotal
}A;
InitArray(struct SqArray * A,int dim,va_list ap)/*va_list is a list type can contain variable elements*/
{
  int i;
  int p = dim;
  if (dim <1 || dim > MAX_ARRAY_DIM)
  {
    printf("The dimension %d you input is overflow!/n",dim);
    return 0;
  }
  A->dim = dim;
  A->bounds = (int *)malloc(dim *sizeof(int));
  if (!A->bounds) exit(OVERFLOW);
  A->elemtotal = 1;
  va_start(ap,dim);
  for (i=0;i<dim;++i)
  {
    A->bounds[i] = va_arg(ap,int);
    if (A->bounds[i]<0) exit(OVERFLOW);
    A->elemtotal *= A->bounds[i];
  }
  va_end(ap);
  A->base = (int *)malloc(A->elemtotal * sizeof(int));
  if (!A->base) exit(OVERFLOW);
  A->constants = (int *)malloc(dim* sizeof(int));
  if (!A->constants)
  A->constants[dim-1]=1;
  for(i = dim-2;i>=0;--i)
  A->constants[i] = A->bounds[i+1]*A->constants[i+1];
  return OK;
}

这个算法里面很多不懂,像int*bounds;
  int * constants;
  int elemtotal;
A->constants[i] = A->bounds[i+1]*A->constants[i+1];
这些究竟代表了数组的什么,求解释,或者推荐一本书给我又详细介绍的
搜索更多相关主题的帖子: elements contain return 
2013-04-14 20:12
快速回复:数组的顺序表示和实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021190 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved