อาร์เรย์ในโครงสร้างข้อมูล: คืออะไร อาร์เรย์ Operaต่างๆ [ตัวอย่าง]

Array ในโครงสร้างข้อมูลคืออะไร?

An แถว เป็นโครงสร้างข้อมูลสำหรับจัดเก็บรายการข้อมูลมากกว่าหนึ่งรายการที่มีชนิดข้อมูลคล้ายคลึงกัน รายการของอาร์เรย์จะถูกจัดสรรไว้ที่ตำแหน่งหน่วยความจำที่อยู่ติดกัน ตำแหน่งหน่วยความจำเหล่านี้เรียกว่า องค์ประกอบ ของอาร์เรย์นั้น เรียกจำนวนองค์ประกอบทั้งหมดในอาร์เรย์ ความยาว.

รายละเอียดของอาร์เรย์จะถูกเข้าถึงเกี่ยวกับตำแหน่งของอาร์เรย์ การอ้างอิงนี้เรียกว่า ดัชนี or ตัวห้อย.

แนวคิดของอาร์เรย์

แผนภาพแนวคิดของอาร์เรย์
แผนภาพแนวคิดของอาร์เรย์

แผนภาพด้านบนแสดงให้เห็นว่า:

  1. อาร์เรย์เป็นที่เก็บขององค์ประกอบ
  2. องค์ประกอบมีค่าและประเภทข้อมูลเฉพาะ เช่น “ABC”, TRUE หรือ FALSE เป็นต้น
  3. แต่ละองค์ประกอบยังมีดัชนีของตัวเองซึ่งใช้ในการเข้าถึงองค์ประกอบ

หมายเหตุ

  • องค์ประกอบจะถูกจัดเก็บไว้ในตำแหน่งหน่วยความจำที่อยู่ติดกัน
  • ดัชนีจะน้อยกว่าจำนวนรายการอาร์เรย์ทั้งหมดเสมอ
  • ในแง่ของไวยากรณ์ ตัวแปรใดๆ ที่ถูกประกาศเป็นอาร์เรย์สามารถเก็บค่าได้หลายค่า
  • เกือบทุกภาษามีความเข้าใจอาร์เรย์เหมือนกัน แต่มีวิธีการประกาศและการเริ่มต้นที่แตกต่างกัน
  • อย่างไรก็ตาม สามส่วนจะยังคงเหมือนกันในการกำหนดค่าเริ่มต้นทั้งหมด กล่าวคือ ชื่ออาร์เรย์ องค์ประกอบ และประเภทข้อมูลขององค์ประกอบ

แผนภาพต่อไปนี้แสดงให้เห็นไวยากรณ์ของการประกาศ อาร์เรย์ใน Python และ C++ เพื่อนำเสนอว่าความเข้าใจยังคงเหมือนเดิมแม้ว่าไวยากรณ์อาจแตกต่างกันเล็กน้อยในภาษาต่างๆ

ทำความเข้าใจไวยากรณ์ของอาร์เรย์

ทำความเข้าใจไวยากรณ์ของอาร์เรย์
  • ชื่ออาร์เรย์: จำเป็นสำหรับการอ้างอิงถึงการรวบรวมองค์ประกอบได้ง่าย
  • ประเภทข้อมูล: จำเป็นสำหรับการตรวจสอบประเภทและความสมบูรณ์ของข้อมูล
  • องค์ประกอบ: นี่คือค่าข้อมูลที่มีอยู่ในอาร์เรย์

ทำไมเราต้องมีอาร์เรย์?

ต่อไปนี้เป็นเหตุผลบางประการในการใช้อาร์เรย์ในโครงสร้างข้อมูล:

  • อาร์เรย์เหมาะที่สุดสำหรับการจัดเก็บค่าหลายค่าในตัวแปรตัวเดียว
  • อาร์เรย์จะดีกว่าในการประมวลผลค่าต่างๆ อย่างง่ายดายและรวดเร็ว
  • การเรียงลำดับและค้นหาค่าจะง่ายกว่าในอาร์เรย์

การสร้างอาร์เรย์ใน Python

In Pythonอาร์เรย์แตกต่างจากรายการ รายการสามารถมีรายการอาร์เรย์ของประเภทข้อมูลได้ ในขณะที่อาร์เรย์สามารถมีได้เฉพาะรายการประเภทข้อมูลเดียวกันเท่านั้น

Python มีโมดูลแยกต่างหากสำหรับจัดการอาร์เรย์ที่เรียกว่าอาร์เรย์ ซึ่งคุณต้องนำเข้าก่อนที่จะเริ่มทำงาน

หมายเหตุ อาร์เรย์จะต้องประกอบด้วยตัวเลขจริง เช่น จำนวนเต็มและจำนวนทศนิยม ไม่อนุญาตให้ใช้สตริง

โค้ดต่อไปนี้แสดงให้เห็นวิธีการสร้างอาร์เรย์จำนวนเต็มใน 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 มีโมดูลพิเศษสำหรับสร้างอาร์เรย์ที่เรียกว่า "อาร์เรย์" คุณต้องนำเข้าก่อนใช้งาน
  3. วิธี: โมดูลอาร์เรย์มีวิธีในการเริ่มต้นอาร์เรย์ ต้องใช้สองอาร์กิวเมนต์ รหัสประเภท และองค์ประกอบ
  4. รหัสประเภท: ระบุประเภทข้อมูลโดยใช้รหัสประเภทที่มีอยู่ (ดูรายการด้านล่าง)
  5. องค์ประกอบ: ระบุองค์ประกอบของอาร์เรย์ภายในวงเล็บเหลี่ยม เช่น [130,450,103]

ตารางต่อไปนี้แสดงรหัสประเภทที่พร้อมใช้งานสำหรับประเภทข้อมูลที่รองรับ:

พิมพ์รหัส Type C Python ประเภท ขนาดขั้นต่ำเป็นไบต์
'ค' ถัง ตัวอักษร 1
'B' ถ่านที่ไม่ได้ลงนาม int 1
'b' ถ่านที่ลงนาม int 1
'ยู' Py_UNICODE อักขระ Unicode 2
'ชม' ลงนามสั้น ๆ int 2
'H' สั้นไม่ได้ลงนาม int 2
'ผม' ลงนามใน int 2
'ผม' int ที่ไม่ได้ลงนาม ยาว 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])

เอาท์พุท

200

แถว Operations

โมดูลอาร์เรย์ของ Python มีฟังก์ชันแยกต่างหากสำหรับการดำเนินการอาร์เรย์ เป็นวิธีการทำลายล้างการดำเนินการกับอาร์เรย์ ซึ่งหมายความว่าการแก้ไขจะถูกบันทึกไว้ในตัวแปรอาร์เรย์

สิ่งที่ใส่เข้าไป

ด้วยการดำเนินการนี้ คุณสามารถแทรกรายการหนึ่งรายการหรือมากกว่านั้นลงในอาร์เรย์ที่จุดเริ่มต้น จุดสิ้นสุด หรือดัชนีที่กำหนดใดๆ ของอาร์เรย์ วิธีนี้ต้องการอาร์กิวเมนต์สองตัวคือดัชนีและค่า

วากยสัมพันธ์

arrayName.insert(index, value)

ตัวอย่าง:

มาเพิ่มค่าใหม่หลังจากรายการที่สองของอาร์เรย์ ปัจจุบัน Balance Array ของเรามีสามรายการ 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)

เอาท์พุท

array('i', [300,200,150,100])

ลบ

การดำเนินการนี้ช่วยให้คุณลบรายการหนึ่งรายการออกจากอาร์เรย์ตามค่าได้ วิธีนี้รับอาร์กิวเมนต์เพียงหนึ่งรายการคือค่า หลังจากเรียกใช้เมธอดนี้ รายการในอาร์เรย์จะถูกจัดเรียงใหม่ และดัชนีจะถูกกำหนดใหม่

วากยสัมพันธ์

arrayName.remove(value)

ตัวอย่าง:

ลองลบค่า 150 ออกจากอาร์เรย์ ปัจจุบัน Balance Array ของเรามีสี่รายการ 300, 200, 150 และ 100 ดังนั้นเพื่อที่จะลบ 150 ออกจากอาร์เรย์ เราจะต้องพิมพ์ 150 ภายในอาร์กิวเมนต์ method เท่านั้น ง่ายใช่มั้ย?

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)

เอาท์พุท

 array('i', [300,200,100])

SEARCH

การดำเนินการนี้ช่วยให้คุณค้นหาไอเท็มในอาร์เรย์โดยอิงตามค่าของไอเท็มนั้นได้ วิธีนี้ยอมรับอาร์กิวเมนต์เพียงหนึ่งตัวคือค่าเท่านั้น นี่เป็นวิธีการแบบไม่ทำลาย ซึ่งหมายความว่าจะไม่ส่งผลกระทบต่อค่าของอาร์เรย์

วากยสัมพันธ์

arrayName.index(value)

ตัวอย่าง:

ลองค้นหาค่า 150 ในอาร์เรย์ ปัจจุบัน Balance Array ของเรามีสี่รายการ 300, 200, 150 และ 100 ดังนั้นเพื่อที่จะค้นหา 150 ในอาร์เรย์ เราจะต้องพิมพ์ 150 ภายในอาร์กิวเมนต์ method เท่านั้น นั่นค่อนข้างง่าย วิธีนี้จะส่งคืนดัชนีของค่าที่ค้นหา

import array
balance = array.array('i', [300,200,150,100])
print(balance.index(150))

เอาท์พุท

2

อัพเดท

การดำเนินการนี้ค่อนข้างคล้ายกับวิธีการแทรก ยกเว้นว่าวิธีการนี้จะแทนที่ค่าที่มีอยู่แล้วในดัชนีที่กำหนด ซึ่งหมายความว่าจะกำหนดค่าใหม่ที่ดัชนีที่กำหนด วิธีการนี้ต้องการอาร์กิวเมนต์สองตัวคือดัชนีและค่า

วากยสัมพันธ์

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)

เอาท์พุท

array('i', [300,200,145,100])

ทราเวิร์

คุณสามารถสำรวจอาร์เรย์หลามได้โดยใช้ลูป เช่นนี้

import array
balance = array.array('i', [300,200,100])
for x in balance:
	print(x)

เอาท์พุท

300
200
100

การสร้างอาร์เรย์ใน C++

C++ language มีความยืดหยุ่นมากกว่า Python เมื่อพูดถึงการสร้างอาร์เรย์ คุณสามารถสร้างได้ C++ อาร์เรย์ ใน 3 วิธีดังที่กล่าวมาข้างต้น

โค้ดต่อไปนี้แสดงให้เห็นวิธีการสร้างอาร์เรย์จำนวนเต็มใน 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 สำหรับวิธีการ Traverse ในอาร์เรย์

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++ จำเป็นต้องมีการกำหนดโปรแกรมสำหรับการดำเนินการอาร์เรย์พื้นฐาน เช่น การแทรก การลบ การค้นหา การอัปเดต และการเคลื่อนย้าย

สรุปโพสต์นี้ด้วย: