15.数据结构 数组的顺序表示和实现

线性表结构是数组结构的一个特例,而数组结构又是线性表结构的扩展。
数组特点:结构固定—定义后,维数和维界不再改变
数组的基本操作:除了结构的初始化和销毁之外,只有取元素和修改元素值的操作,一般不做插入和删除操作。一般采用顺序存储结构来表示数组。
1.InitArray(&A,n,bound1,…,boundn) //构造数组A
2.DestroyArray(&A) //销毁数组A
3.Value(A,&e,index1,…,indexn) //取数组元素值
4.Assign(A,&e,index1,…,indexn) //给数组元素赋值
两种顺序存储方式:1.以行序为主序(c、java用这种方式);2.以列序为主序
行序优先表示中m行n列的二维数组a[m][n],第i行第j列的元素的存储位置为(i*n+j)*sizeof(a)+a[0][0]
页优先的顺序存储的三维数组b[m1][m2][m3],那么b[i1][i2][i3]元素的存储位置是

(i1*m2*m3+i2*m3+i3)*sizeof(b)+b[0][0][0]

一.数组的顺序存储表示(结构固定,不需要链式存储结构)

在这里插入图片描述
在这里插入图片描述

#include<stdarg.h>//标准头文件,提供宏va_start,va_arg和va_end,用于存取变长参数表
#define MAX_ARRAY_DIM 8 //假设数组位数的最大值为8
struct Array
{
	ElemType *base; //数组元素基址,由InitArray分配
	int dim;//数组维数
	int *bounds;//数组维界基址,由InitArray分配
	int *constants;//数组映象函数常量基址,由InitArray分配
};

二.顺序存储数组的基本操作

三.变长参数表(函数的参数个数可变)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值