数组 - 数据结构

数组 - 数据结构 首页 / 结构和算法入门教程 / 数组 - 数据结构

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

  • 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 = j + 1;
   }
	
   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 

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

白话法律42讲 -〔周甲徳〕

如何做好一场技术演讲 -〔极客时间〕

Vim 实用技巧必知必会 -〔吴咏炜〕

Redis核心技术与实战 -〔蒋德钧〕

Linux内核技术实战课 -〔邵亚方〕

Django快速开发实战 -〔吕召刚〕

高楼的性能工程实战课 -〔高楼〕

操作系统实战45讲 -〔彭东〕

结构沟通力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)