C語言資料結構 - 陣列



概述

陣列是一個可以容納固定數量的專案的容器,並且這些專案必須是相同型別。大多數資料結構利用陣列來實現其演算法。以下是理解陣列概念的一些重要術語。

  • 元素 - 儲存在陣列中的每個專案稱為元素。

  • 索引 - 陣列中每個元素的位置都有一個數值索引,用於識別該元素。

陣列表示

Array

根據上面所示的圖示,以下是要考慮的重要事項。

  • 索引從 0 開始。

  • 陣列長度為 8,這意味著它可以儲存 8 個元素。

  • 每個元素都可以透過其索引訪問。例如,我們可以獲取索引為 6 的元素,即 9。

基本操作

以下是陣列支援的基本操作。

  • 插入 - 在給定索引處新增元素。

  • 刪除 - 刪除給定索引處的元素。

  • 搜尋 - 使用給定索引或值搜尋元素。

  • 更新 - 更新給定索引處的元素。

在 C 中,當陣列初始化為指定大小後,它會按照以下順序為其元素分配預設值。

序號 資料型別 預設值
1 bool false
2 char 0
3 int 0
4 float 0.0
5 double 0.0f
6 void
7 wchar_t 0

示例

#include <stdio.h>
#include <string.h>

static void display(int intArray[], int length){
   int i=0;
   printf("Array : [");
   for(i = 0; i < length; i++) {
      /* display value of element at index i. */
      printf(" %d ", intArray[i]);
   }
   printf(" ]\n ");   
}

int main() {
   int i = 0;
   /* Declare an array */
   int intArray[8];

   // initialize elements of array n to 0          
   for ( i = 0; i < 8; i++ ) {
      intArray[ i ] = 0; // set elements to default value of 0;
   }
   printf("Array with default data.");

   /* Display elements of an array.*/
   display(intArray,8);     

   /* Operation : Insertion 
   Add elements in the array */
   for(i = 0; i < 8; i++) {
      /* place value of i at index i. */
      printf("Adding %d at index %d\n",i,i);
      intArray[i] = i;
   }
   printf("\n");
   printf("Array after adding data. ");
   display(intArray,8);

   /* Operation : Insertion 
   Element at any location can be updated directly */
   int index = 5;
   intArray[index] = 10;

   printf("Array after updating element at index %d.\n",index);
   display(intArray,8);

   /* Operation : Search using index
   Search an element using index.*/
   printf("Data at index %d:%d\n" ,index,intArray[index]);

   /* Operation : Search using value
   Search an element using value.*/
   int value = 4;
   for(i = 0; i < 8; i++) {
      if(intArray[i] == value ){
         printf("value %d Found at index %d \n", intArray[i],i);
         break;
      }
   }
   return 0;
}

輸出

如果我們編譯並執行上述程式,它將產生以下輸出:

Array with default data.Array : [ 0 0 0 0 0 0 0 0 ]
Adding 0 at index 0
Adding 1 at index 1
Adding 2 at index 2
Adding 3 at index 3
Adding 4 at index 4
Adding 5 at index 5
Adding 6 at index 6
Adding 7 at index 7

Array after adding data. Array : [ 0 1 2 3 4 5 6 7 ]
Array after updating element at index 5.
Array : [ 0 1 2 3 4 10 6 7 ]
Data at index 5: 10
4 Found at index 4
廣告