
数据结构详解精练-开发调试
考研专区
课程介绍
课程目录
老师介绍
数组(Array)是一种在编程中广泛使用的数据结构,它可以存储多个相同类型的元素,并通过一个索引(Index)来访问这些元素。以下从多个方面详细介绍数组:
- 定义与基本特性
- 有序集合:数组将多个元素按顺序存储在连续的内存位置上。例如在Python中定义一个整数数组
my_list = [10, 20, 30, 40]
,这些整数在内存中是依次排列的。 - 相同数据类型:多数编程语言要求数组中的元素具有相同的数据类型。比如在Java中
int[] numbers = {1, 2, 3}
,数组numbers
只能存放整数类型的数据。但也有例外,如Python中的列表(List),它类似于数组,不过可以存放不同类型的数据,例如my_list = [1, "hello", True]
。
- 有序集合:数组将多个元素按顺序存储在连续的内存位置上。例如在Python中定义一个整数数组
- 数组的索引
- 访问元素:通过索引来访问数组中的特定元素,索引从0开始。例如在C语言中:
#include <stdio.h> int main() { int arr[5] = {1, 2, 3, 4, 5}; printf("%d", arr[2]); return 0; }
上述代码中,arr[2]
访问的是数组 arr
中的第3个元素,输出结果为3。
- 索引范围:合法的索引范围是从0到数组长度减1。如果访问超出这个范围的索引,会导致越界错误,程序可能会崩溃或产生不可预测的结果。
- 数组的分类
- 一维数组:最简单的数组形式,只有一个维度,如上述例子中的数组都是一维数组,适用于存储线性序列的数据。
- 多维数组:可以看作是数组的数组。以二维数组为例,它常被用来表示表格或矩阵形式的数据。在Java中定义一个二维数组如下:
int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
这里的 matrix
就是一个二维数组,可通过两个索引值 matrix[i][j]
来访问其中的元素,其中 i
表示行,j
表示列。
4. 数组的操作
- 初始化:在声明数组时可以同时进行初始化,如前面例子中所示。也可以先声明再逐个赋值,例如在Python中:
my_list = [None] * 5 my_list[0] = 1 my_list[1] = 2
- 遍历:通常使用循环结构来遍历数组的所有元素。例如在JavaScript中遍历一个数组:
let arr = [10, 20, 30]; for (let i = 0; i < arr.length; i++) { console.log(arr[i]); }
- 添加和删除元素:对于一些动态数组(如Python的列表),可以方便地添加或删除元素。例如Python列表的
append()
方法用于在列表末尾添加元素,pop()
方法用于删除并返回指定位置的元素。而在一些静态数组(如C语言的数组)中,添加或删除元素相对复杂,通常需要创建一个新的数组并复制相关元素。