无涯教程-数组 - 数据结构

36 阅读3分钟

数组是一个容器,可以容纳固定数量的元素,这些元素应为同一类型,大多数数据结构都利用数组来实现其算法,以下是了解数组概念的重要术语。

  • Element    -  数组中存储的每个值都称为元素。

  • Index        -  数组中元素的每个位置都有一个数字索引,用于标识元素。

数组表示

可以使用不同的语言以各种方式声明数组。为了说明起见,让我们以C数组声明为例。

Array Declaration

可以使用不同的语言以各种方式声明数组。为了说明起见,让我们以C数组声明为示例。

数组表示

根据上面的说明,以下是要考虑的重点。

  • 索引从0开始。

  • 数组长度为10,这意味着它可以存储10个元素。

  • 每个元素都可以通过索引进行访问。如我们可以在索引6处获取一个元素为27。

基本操作

以下是数组支持的基本操作。

  • 遍历   - 逐一打印所有数组元素。

  • 插入   - 在给定索引处添加一个元素。

  • 删除   - 删除给定索引处的元素。

  • 搜索   - 使用给定的索引或值搜索元素。

  • 更新   - 更新给定索引处的元素。

插入操作

插入操作是将一个或多个数据元素插入数组,根据要求,可以在数组的开头,结尾或任何给定的索引处添加新元素。

在这里,我们看到了插入操作的实际实现,我们在数组的末尾添加了数据-

#include <stdio.h>

main() { int LA[] = {1,3,5,7,8}; int item = 10, k = 3, n = 5; int i = 0, j = n;

printf("The learnfk original array elements are :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); }

n = n + 1;

while( j >= k) { LA[j+1] = LA[j]; j = j - 1; }

LA[k] = item;

printf("The learnfk array elements after insertion :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); } }

当我们编译并执行上述程序时,它将产生以下输出-

The learnfk original array elements are :
LA[0]=1 
LA[1]=3 
LA[2]=5 
LA[3]=7 
LA[4]=8 
The learnfk array elements after insertion :
LA[0]=1 
LA[1]=3 
LA[2]=5 
LA[3]=10 
LA[4]=7 
LA[5]=8 

删除操作

删除是指从数组中删除现有元素并重新组织数组中的所有元素。

#include <stdio.h>

void main() { int LA[] = {1,3,5,7,8}; int k = 3, n = 5; int i, j;

printf("The learnfk original array elements are :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); }

j = k;

while( j < n) { LA[j-1] = LA[j]; j = j + 1; }

n = n -1;

printf("The learnfk array elements after deletion :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); } }

当我们编译并执行上述程序时,它将产生以下输出-

The learnfk original array elements are :
LA[0]=1 
LA[1]=3 
LA[2]=5 
LA[3]=7 
LA[4]=8 
The learnfk array elements after deletion :
LA[0]=1 
LA[1]=3 
LA[2]=7 
LA[3]=8 

搜索操作

您可以根据数组元素的值或索引来搜索它。

#include <stdio.h>

void main() { int LA[] = {1,3,5,7,8}; int item = 5, n = 5; int i = 0, j = 0;

printf("The learnfk original array elements are :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); }

while( j < n){ if( LA[j] == item ) { break; }

  j </span><span class="pun">=</span><span class="pln"> j </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln">

}

printf("Found learnfk element %d at position %d\n", item, j+1); }

当我们编译并执行上述程序时,它将产生以下输出-

The learnfk original array elements are :
LA[0]=1 
LA[1]=3 
LA[2]=5 
LA[3]=7 
LA[4]=8 
Found learnfk element 5 at position 3

更新操作

更新操作是指以给定索引更新数组中的现有元素。

#include <stdio.h>

void main() { int LA[] = {1,3,5,7,8}; int k = 3, n = 5, item = 10; int i, j;

printf("The learnfk original array elements are :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); }

LA[k-1] = item;

printf("The learnfk array elements after updation :\n");

for(i = 0; i<n; i++) { printf("LA[%d]=%d\n", i, LA[i]); } }

当我们编译并执行上述程序时,它将产生以下输出-

The learnfk original array elements are :
LA[0]=1 
LA[1]=3 
LA[2]=5 
LA[3]=7 
LA[4]=8 
The learnfk array elements after updation :
LA[0]=1 
LA[1]=3 
LA[2]=10 
LA[3]=7 
LA[4]=8 

参考链接

www.learnfk.com/data-struct…