3数组抽象数据类型 数据集合: 数组的数据集合可以表示为an,a1,a2,…,an1,每个数据元素的 数据类型为抽象数据元素类型 Datatype 操作集合: (1)求数组元素个数 Arraylength(D) (2)取数组元素Ge(D,i 3)存数组元素 Storage(D,,x)
3.数组抽象数据类型 数据集合: 数组的数据集合可以表示为a0 , a1 , a2 , ..., an-1,每个数据元素的 数据类型为抽象数据元素类型DataType。 操作集合: (1)求数组元素个数ArrayLength(D) (2)取数组元素Get(D, i) (3)存数组元素Storage(D, i, x)
例如,inta[10; a|3]=a|4;/赋值号右边的a4是取操作 取值 赋值号左边的a3是存操作 取地址
例如, int a[10]; a[3] = a[4]; //赋值号右边的a[4]是取操作, 取值 //赋值号左边的a[3]是存操作, 取地址
52动态数组 数组有静态存储结构的数组和动态存储结构的数组两种,它们 的区别在于: 静态数组在定义时就必须给出数组个数; 动态数组是在具体申请存储单元空间时才给出数组元素的个数
5.2 动态数组 数组有静态存储结构的数组和动态存储结构的数组两种,它们 的区别在于: 静态数组在定义时就必须给出数组个数; 动态数组是在具体申请存储单元空间时才给出数组元素的个数
例5-2定义有3行、4列整数类型的二维数组a,先逐行分 别给数组元素赋数据1,2,…12,然后显示数组中的数 值。要求分别把申请二维动态数组的过程和释放二维动态 数组的过程编写成函数。 int *x Make2Darray(int row, int col) t int**a, i; a =(int**)malloc(row sizeof(int *)); for(i=0;i< row; i++) a=(int *)malloc(col* sizeof(int)); return a
例5-2 定义有3行、4列整数类型的二维数组a,先逐行分 别给数组元素赋数据1,2,...,12,然后显示数组中的数 值。要求分别把申请二维动态数组的过程和释放二维动态 数组的过程编写成函数。 int **Make2DArray(int row, int col) { int **a, i; a = (int **)malloc(row * sizeof(int *)); for (i = 0; i < row; i++) a[i] = (int *)malloc(col * sizeof(int)); return a; }
void Diliver2DArray(int **, int row) t int fori=0;i< row; 1++) free( i; free(a); #include <malloc.h> #include <stdio.h> #include <stdlib.h> include“ Array. h
void Diliver2DArray(int **a, int row) { int i; for(i = 0; i < row; i++) free(a[i]); free(a); } #include <malloc.h> #include <stdio.h> #include <stdlib.h> #include “Array.h