数据结构中的数组:什么是数组 Operations [示例]

数据结构中的数组是什么?

An 排列 是一种用于存储具有相似数据类型的多个数据项的数据结构。数组的项分配在相邻的内存位置。这些内存位置称为 分子 该数组的元素总数。数组中元素的总数称为 长度.

访问数组的详细信息,了解其位置。此引用称为 指数 or 下标.

数组的概念

数组的概念图
数组的概念图

上图说明:

  1. 数组是元素的容器。
  2. 元素具有特定的值和数据类型,如“ABC”、TRUE 或 FALSE 等。
  3. 每个元素还有自己的索引,用于访问该元素。

注意:

  • 元素存储在连续的内存位置。
  • 索引总是小于数组项的总数。
  • 从语法上讲,任何声明为数组的变量都可以存储多个值。
  • 几乎所有语言对数组的理解都是相同的,但是声明和初始化数组的方式却不同。
  • 但是,在所有初始化中始终有三个部分保持共同,即数组名称、元素和元素的数据类型。

下图说明了声明 数组输入 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

数组的语法 Python

  1. 识别码:像平常一样指定变量的名称
  2. 模块: Python 有一个用于创建数组的特殊模块,称为“array”——在使用它之前必须导入它
  3. 付款方式:array 模块有一个初始化数组的方法。它接受两个参数,typecode 和 elements。
  4. 类型代码:使用可用的类型代码指定数据类型(见下表)
  5. 元素:在方括号内指定数组元素,例如 [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++ 需要定义程序来进行基本的数组操作,如插入、删除、搜索、更新和遍历

总结一下这篇文章: