logo图片
数据结构与算法

数组

Array 是一个容器,可以容纳固定数量的项目,并且这些项目应该是相同的类型。大多数数据结构都使用数组来实现它们的算法。以下是理解数组概念的重要术语。
Element-存储在数组中的每个项目称为一个元素。 Index-数组中元素的每个位置都有一个数字索引,用于标识元素。

数组表示

数组可以用不同的语言以各种方式声明。为了说明,我们以 C 数组声明为例。
数组声明
数组可以用不同的语言以各种方式声明。为了说明,我们以 C 数组声明为例。
数组表示
根据上图,以下是需要考虑的重点。
索引从 0 开始。 数组长度为 10,这意味着它可以存储 10 个元素。 每个元素都可以通过其索引来访问。例如,我们可以将索引 6 处的元素设为 9、

基本操作

以下是数组支持的基本操作。
遍历-一个一个打印所有数组元素。 插入-在给定索引处添加一个元素。 删除-删除给定索引处的元素。 搜索-使用给定索引或值搜索元素。 更新-更新给定索引处的元素。
在 C 中,当数组初始化为 size 时,它​​会按以下顺序为其元素分配默认值。
数据类型 默认值
boolean
string 0
int 0
float 0.0
double 0.0f
void
wchar_t 0

遍历操作

这个操作是遍历一个数组的元素。

示例

以下程序遍历并打印数组的元素:
#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 original array elements are :\n");
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}
当我们编译并执行上述程序时,它会产生以下结果-

输出

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

插入操作

插入操作是将一个或多个数据元素插入到一个数组中。根据需要,可以在数组的开头、结尾或任何给定索引处添加新元素。
在这里,我们看到了插入操作的实际实现,我们在数组末尾添加数据-

示例

以下是上述算法的实现-
#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 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 array elements after insertion :\n");
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}
当我们编译并执行上述程序时,它会产生以下结果-

输出

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after insertion :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 10 
LA[4] = 7 
LA[5] = 8 
对于数组插入操作的其他变体点击这里

删除操作

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

算法

考虑 LA 是一个具有 N 个元素的线性数组,而 K 是一个正整数,使得 K<=N。以下是删除 LA 的第 K th 位置可用元素的算法。
1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop

示例

以下是上述算法的实现-
#include <stdio.h>
void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5;
   int i, j;
   
   printf("The 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 array elements after deletion :\n");
   
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}
当我们编译并执行上述程序时,它会产生以下结果-

输出

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

搜索操作

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

算法

考虑 LA 是一个具有 N 个元素的线性数组,而 K 是一个正整数,使得 K<=N。以下是使用顺序搜索查找值为 ITEM 的元素的算法。
1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. if LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRint J, ITEM
7. Stop

示例

以下是上述算法的实现-
#include <stdio.h>
void main() {
   int LA[] = {1,3,5,7,8};
   int item = 5, n = 5;
   int i = 0, j = 0;
   
   printf("The 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 = j + 1;
   }
   
   printf("Found element %d at position %d\n", item, j+1);
}
当我们编译并执行上述程序时,它会产生以下结果-

输出

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

更新操作

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

算法

考虑 LA 是一个具有 N 个元素的线性数组,而 K 是一个正整数,使得 K<=N。以下是更新 LA 的第 K th 位置可用元素的算法。
1. Start
2. Set LA[K-1] = ITEM
3. Stop

示例

以下是上述算法的实现-
#include <stdio.h>
void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5, item = 10;
   int i, j;
   
   printf("The 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 array elements after updation :\n");
   
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}
当我们编译并执行上述程序时,它会产生以下结果-

输出

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after updation :
LA[0] = 1 
LA[1] = 3 
LA[2] = 10 
LA[3] = 7 
LA[4] = 8 
昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4