数据结构中的数组:什么是数组 Operations [示例]
数据结构中的数组是什么?
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(type code for data type, [array,items])
下图解释了该语法。
- 识别码:像平常一样指定变量的名称
- 模块: Python 有一个用于创建数组的特殊模块,称为“array”——在使用它之前必须导入它
- 付款方式:array 模块有一个初始化数组的方法。它接受两个参数,typecode 和 elements。
- 类型代码:使用可用的类型代码指定数据类型(见下表)
- 元素:在方括号内指定数组元素,例如 [130,450,103]
下表说明了受支持的数据类型的类型代码:
| 类型代码 | C型 | Python 类型 | 最小大小(以字节为单位) |
|---|---|---|---|
| 'C' | 坦克 | 字符 | 1 |
| 'B' | 无符号的字符 | INT | 1 |
| 'b' | 签名字符 | INT | 1 |
| 'u' | UNICODE 代码 | Unicode字符 | 2 |
| 'H' | 签署短 | INT | 2 |
| 'H' | 无符号的短 | INT | 2 |
| '一世' | 有符号整数 | INT | 2 |
| '一世' | 无符号整数 | 长 | 2 |
| '我' | 已签署长期 | INT | 4 |
| 'L' | 无符号长 | 长 | 4 |
| 'F' | 浮动 | 浮动 | 4 |
| 'd' | 翻番 | 浮动 | 8 |
如何访问特定的数组值?
您可以使用索引来访问任何数组项。
句法
arrayName[indexNum]
计费示例:
balance[1]
下图说明了通过索引访问数组项的基本概念。
在这里,我们使用索引(即 1)访问了数组的第二个值。其输出将是 200,这基本上是平衡数组的第二个值。
import array
balance = array.array('i', [300,200,100])
print(balance[1])
OUTPUT
200
排列 Opera系统蒸发散
数组模块 Python 具有用于执行数组操作的单独函数。这是对数组进行破坏性操作的方法,这意味着修改将保存在数组变量中。
插页
使用此操作,您可以在数组的开头、结尾或任何给定索引处插入一个或多个项目。此方法需要两个参数 index 和 value。
句法
arrayName.insert(index, value)
计费示例:
让我们在数组的第二项后面添加一个新值。目前,我们的余额数组有三个项 300、200 和 100。那么,如果您说 200,那么值为 1 的第二个数组项的索引是多少。
为了在索引 1 之后立即插入新值,您需要在插入方法中引用索引 2,如下所示:
import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
现在,要验证新值是否已插入,请输入数组名称并按键盘上的 Enter 键:
import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
OUTPUT
array('i', [300,200,150,100])
删除
使用此操作,您可以按值从数组中删除一个项目。此方法仅接受一个参数,即值。运行此方法后,数组项目将重新排列,索引也将重新分配。
句法
arrayName.remove(value)
计费示例:
让我们从数组中删除 150 这个值。目前,我们的余额数组有四个项目:300、200、150 和 100。因此,为了从数组中删除 150,我们只需在方法参数中输入 150。很简单,对吧?
import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
balance.remove(150)
现在,要验证该值是否已被删除,请输入数组名称并按键盘上的 Enter 键:
import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
balance.remove(150)
print(balance)
OUTPUT
array('i', [300,200,100])
搜索
使用此操作,您可以根据数组中的值来搜索该项。此方法仅接受一个参数,即值。这是一种非破坏性方法,这意味着它不会影响数组值。
句法
arrayName.index(value)
计费示例:
让我们在数组中搜索 150 的值。目前,我们的余额数组有四个项目 300、200、150 和 100。因此,为了在数组中搜索 150,我们只需在方法参数中输入 150。这很容易。此方法返回搜索值的索引。
import array
balance = array.array('i', [300,200,150,100])
print(balance.index(150))
OUTPUT
2
更新
此操作与 insert 方法非常相似,不同之处在于它将替换给定索引处的现有值。这意味着将在给定索引处简单地分配一个新值。此方法需要两个参数 index 和 value。
句法
arrayName.udpate(index, value)
计费示例:
假设我们的数组有四个项目 300、200、150 和 100,并且我们想用 150 替换 145。那么索引 150 是什么?
如果你说的是 2,那就太好了。
为了替换索引为 150 的 2,您需要使用简单的赋值运算符引用索引 2,如下所示:
import array
balance = array.array('i', [300,200,150,100])
balance[2] = 145
现在,要验证值是否已更新,请输入数组名称并按键盘上的 Enter 键:
import array
balance = array.array('i', [300,200,150,100])
balance[2] = 145
print(balance)
OUTPUT
array('i', [300,200,145,100])
特拉弗斯
您可以使用循环遍历 Python 数组,如下所示:
import array
balance = array.array('i', [300,200,100])
for x in balance:
print(x)
OUTPUT
300 200 100
在中创建数组 C++
C++ language 比 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];
计费示例:
int balance[3];
仅声明初始化数组项
句法
dataType arrayName[] = {array, items};
计费示例:
int balance[] = { 300, 200, 100 };
按大小声明和初始化数组项
句法
dataType arrayName[arraySize] = {array, items};
计费示例:
int balance[3] = { 300, 200, 100 };
如何访问特定的数组值?
您可以使用索引来访问任何数组项。
句法
arrayName[indexNum]
计费示例:
balance[1]
下图说明了通过索引访问数组项的基本概念。
在这里,我们使用索引(即 1)访问了数组的第二个值。其输出将是 200,这基本上是余额数组的第二个值。
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
输出
200
排列 Opera在 C++
不比 Python在 C++ 您必须自己编写逻辑来执行插入、删除、搜索、更新和遍历操作 C++ 数组。
插页
插入操作的逻辑如下:
- 循环遍历数组项
- 将它们转移到更大的指数
- 在给定索引处添加新数组项
在下面的例子中,余额数组中有 5 个项目,我们想要在值 200 之后添加一个新项目。这意味着我们必须将 200 之后的所有项目移动到更大的索引,然后插入新的值 150。
#include <iostream>
#include <stdio.h>
main() {
int pos = 2;
int size = 4;
int balance[] = {300,200,100,50,0};
printf("BEFORE INCREMENT: \n");
for(int i = 0; i<5; i++) {
printf("%d\n",balance[i]);
}
/* FOR SHIFTING ITEMS TO A GREATER INDEX */
for(int i = size; i >= pos; i--) {
balance[i+1]=balance[i];
}
/* FOR INSERTING VALUE AT OUR DESIRED INDEX */
balance[pos] = 150;
printf("AFTER INCREMENT: \n");
/* FOR PRINTING THE NEW ARRAY */
for(int i = 0; i<6; i++) {
printf("%d\n",balance[i]);
}
}
输出
BEFORE INCREMENT 300 200 100 50 0 AFTERINCREMENT 300 200 150 100 50 0
排列 Opera在 Java
让我们创建一个编程 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]+" ");
}
}
}
输出:-
Enter the size of the array 5 Enter Elements in the array 1 2 3 4 5 Elements in the array 1 2 3 4 5
修改数组中的元素:-
根据给定的索引更新元素。
计划 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 where you want to change in an array");
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]+" ");
}
}
}
输出:-
Array Elements Before modify 1 2 3 4 5 Enter the position where you want to change in an array 2 Enter the value 8 Array Elements After modify 1 2 8 4 5
访问数组中的元素:-
打印所有数组元素。
计划 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]+" ");
}
}
}
输出:-
Array Elements are:- 1 2 3 4 5
结语
- 数组是一种用于存储具有相似数据类型的多个数据项的数据结构
- 标识符、数据类型、数组长度、元素和索引是数组的主要部分
- 使用索引处理数组元素的值
- 数组对保持数据类型完整有很好的支持
- 在大多数语言中,数组是通过指定标识符、数据类型和要包含的元素来创建的
- 数组最适合处理大量值,以及快速排序和搜索
- Python 具有模块和内置方法来执行基本的数组操作,如插入、删除、搜索、更新和遍历
- C++ 需要定义程序来进行基本的数组操作,如插入、删除、搜索、更新和遍历
