数据结构中的数组(Operations)
⚡ 智能摘要
数据结构中的数组将多个相同数据类型的元素存储在连续的内存位置,每个位置都可以通过索引访问。本教程解释了数组的概念、数组的重要性以及如何创建和操作数组。 Python, C++和 Java 用例子。

数据结构中的数组是什么?
An 排列 数组是一种用于存储多个相同数据类型数据项的数据结构。数组中的数据项分配在相邻的内存位置,这些位置称为内存单元。 分子 数组的元素总数。数组中元素的总数就是它的 长度.
每个元素都通过其位置进行访问,这种引用称为…… 指数 or 下标.
数组的概念
数组的概念图
上图说明了:
- 数组是元素的容器。
- 元素具有特定的值和数据类型,例如“ABC”、TRUE 或 FALSE。
- 每个元素都有自己的索引,通过索引可以访问该元素。
注意:
- 元素存储在连续的内存位置。
- 索引总是小于数组项的总数。
- 任何声明为数组的变量都可以存储多个值。
- 几乎所有语言都共享数组的概念,但在声明和初始化数组的方式上有所不同。
- 在所有初始化过程中,有三个部分是相同的:数组名称、元素和元素的数据类型。
下图显示了声明的语法 数组输入 Python 和 C++这表明,即使不同语言的语法略有不同,概念也保持不变。
理解数组的语法
- 数组名称: 需要便于查阅元素集合。
- 数据类型: 用于类型检查和数据完整性。
- 内容: 数组中存在的数据值。
为什么我们需要数组?
- 数组非常适合在单个变量中存储多个值。
- 它们能够轻松快速地处理大量数值。
- 使用数组可以更轻松地对值进行排序和搜索。
在中创建数组 Python
In Python数组与列表不同:列表可以包含不同数据类型的项,而数组只能包含相同数据类型的项。 Python 它有一个单独的模块来处理数组,名为 array必须先导入才能使用。
注意: 数组必须包含实数,例如整数和浮点数;不允许包含字符串。
以下代码创建了一个整数数组 Python 存储账户余额:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
声明数组的方法 Python
您可以在中声明一个数组 Python 使用以下语法进行初始化:
arrayName = array.array(typecode, [array_items])
数组的语法 Python
- 识别: 像平时给变量命名一样,给它指定一个名称。
- 模块: Python 它有一个名为“array”的特殊模块,您必须先导入该模块。
- 方法: 数组模块有一个用于初始化数组的方法,它接受两个参数——类型代码和元素。
- 类型代码: 使用可用的类型代码指定数据类型(见下表)。
- 内容: 用方括号指定数组元素,例如 [130, 450, 103]。
下表列出了受支持数据类型的可用类型代码。
| 类型代码 | C型 | Python 类型 | 最小大小(字节) |
|---|---|---|---|
| 'b' | 签名字符 | INT | 1 |
| 'B' | 无符号的字符 | INT | 1 |
| 'u' | UNICODE 代码 | Unicode字符 | 2 |
| 'H' | 签署短 | INT | 2 |
| 'H' | 无符号的短 | INT | 2 |
| '一世' | 有符号整数 | INT | 2 |
| '一世' | 无符号整数 | INT | 2 |
| '我' | 已签署长期 | INT | 4 |
| 'L' | 无符号长 | INT | 4 |
| 'F' | 浮动 | 浮动 | 4 |
| 'd' | 翻番 | 浮动 | 8 |
如何访问数组中的特定值?
您可以使用索引访问数组中的任何元素。
语法:
arrayName[indexNum]
计费示例:
balance[1]
访问数组元素
在这里,我们使用索引 1 访问了数组的第二个值。输出为 200,这是余额数组的第二个值。
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
输出:
200
排列 Opera在 Python
此 Python 数组模块提供了用于数组操作的独立函数。这些操作是破坏性的,意味着修改会直接保存在数组变量中。
插页
此操作将一个或多个元素插入数组的开头、结尾或任何给定的索引位置。它接受两个参数:索引和值。
arrayName.insert(index, value)
计费示例: 要在索引 1(值 200)之后插入新值,请在插入方法中引用索引 2。
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
输出:
array('i', [300, 200, 150, 100])
删除
此操作按值从数组中删除一个元素,接受一个参数。操作完成后,元素将被重新排列,索引也会被重新赋值。
arrayName.remove(value)
计费示例:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
输出:
array('i', [300, 200, 100])
搜索
此操作按值查找元素并返回其索引。它是一种非破坏性方法,因此不会更改数组值。
arrayName.index(value)
计费示例:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
输出:
2
更新
更新操作使用简单的赋值运算符替换给定索引处的现有值。Python 数组没有 update() 方法。)
arrayName[index] = value
计费示例: 将索引为 2 的 150 替换为 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
输出:
array('i', [300, 200, 145, 100])
特拉弗斯
你可以遍历 Python 使用循环生成数组:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
输出:
300
200
100
在中创建数组 C++
C++ 比 Python 创建数组时,您可以创建 C++ 数组 有三种方法。以下代码创建一个整数数组。 C++ 存储账户余额:
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
for (int i = 0; i < 3; i++)
{
cout << "value of i: " << balance[i] << endl;
}
return 0;
}
声明数组的方法 C++
根据程序的需求,你可以通过三种方式声明数组。
按尺寸声明:
dataType arrayName[arraySize]; // e.g. int balance[3];
仅包含数组元素的声明:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
按尺寸和物品申报:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
如何在数组中访问特定值 C++?
访问数组元素
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
输出:
200
排列 Opera在 C++
不比 Python在 C++ 您必须自行编写插入、删除、搜索、更新和遍历操作的逻辑。
插页
插入逻辑如下:遍历数组元素,将它们向更大的索引位置移动,然后在指定的索引位置添加新元素。下面的示例包含五个元素,并在值 200 之后插入 150。
#include <iostream>
#include <stdio.h>
main() {
int pos = 2;
int size = 4;
int balance[] = {300, 200, 100, 50, 0};
printf("BEFORE INSERT:\n");
for(int i = 0; i < 5; i++) {
printf("%d\n", balance[i]);
}
/* SHIFT ITEMS TO A GREATER INDEX */
for(int i = size; i >= pos; i--) {
balance[i+1] = balance[i];
}
/* INSERT VALUE AT THE DESIRED INDEX */
balance[pos] = 150;
printf("AFTER INSERT:\n");
for(int i = 0; i < 6; i++) {
printf("%d\n", balance[i]);
}
}
排列 Opera在 Java
让我们创建一个程序 Java 它接受用户提供的数组元素的大小和值。
import java.util.Scanner;
public class AddElements {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the array");
int n = sc.nextInt();
int arr[] = new int[n];
System.out.println("Enter Elements in the array");
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
System.out.println("Elements in the array");
for(int j = 0; j < n; j++) {
System.out.print(arr[j] + " ");
}
}
}
修改元素 Java 排列
根据索引更新元素。
import java.util.Scanner;
public class ModifyElement {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
int length = arr.length;
Scanner sc = new Scanner(System.in);
System.out.println("Array Elements Before modify");
for(int i = 0; i < length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println("\nEnter the position to change");
int pos = sc.nextInt();
System.out.println("Enter the value");
int val = sc.nextInt();
arr[pos] = val;
System.out.println("Array Elements After modify");
for(int j = 0; j < length; j++) {
System.out.print(arr[j] + " ");
}
}
}
访问元素 Java 排列
通过遍历数组打印所有数组元素。
public class AccessElements {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5};
int length = arr.length;
System.out.println("Array Elements are:-");
for(int i = 0; i < length; i++) {
System.out.print(arr[i] + " ");
}
}
}





