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

แผนภาพด้านบนแสดงให้เห็นว่า:
- อาร์เรย์เป็นที่เก็บขององค์ประกอบ
- องค์ประกอบมีค่าและประเภทข้อมูลเฉพาะ เช่น “ABC”, TRUE หรือ FALSE เป็นต้น
- แต่ละองค์ประกอบยังมีดัชนีของตัวเองซึ่งใช้ในการเข้าถึงองค์ประกอบ
หมายเหตุ
- องค์ประกอบจะถูกจัดเก็บไว้ในตำแหน่งหน่วยความจำที่อยู่ติดกัน
- ดัชนีจะน้อยกว่าจำนวนรายการอาร์เรย์ทั้งหมดเสมอ
- ในแง่ของไวยากรณ์ ตัวแปรใดๆ ที่ถูกประกาศเป็นอาร์เรย์สามารถเก็บค่าได้หลายค่า
- เกือบทุกภาษามีความเข้าใจอาร์เรย์เหมือนกัน แต่มีวิธีการประกาศและการเริ่มต้นที่แตกต่างกัน
- อย่างไรก็ตาม สามส่วนจะยังคงเหมือนกันในการกำหนดค่าเริ่มต้นทั้งหมด กล่าวคือ ชื่ออาร์เรย์ องค์ประกอบ และประเภทข้อมูลขององค์ประกอบ
แผนภาพต่อไปนี้แสดงให้เห็นไวยากรณ์ของการประกาศ อาร์เรย์ใน 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 มีโมดูลพิเศษสำหรับสร้างอาร์เรย์ที่เรียกว่า "อาร์เรย์" คุณต้องนำเข้าก่อนใช้งาน
- วิธี: โมดูลอาร์เรย์มีวิธีในการเริ่มต้นอาร์เรย์ ต้องใช้สองอาร์กิวเมนต์ รหัสประเภท และองค์ประกอบ
- รหัสประเภท: ระบุประเภทข้อมูลโดยใช้รหัสประเภทที่มีอยู่ (ดูรายการด้านล่าง)
- องค์ประกอบ: ระบุองค์ประกอบของอาร์เรย์ภายในวงเล็บเหลี่ยม เช่น [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++ จำเป็นต้องมีการกำหนดโปรแกรมสำหรับการดำเนินการอาร์เรย์พื้นฐาน เช่น การแทรก การลบ การค้นหา การอัปเดต และการเคลื่อนย้าย
