Veri Yapısında Dizi (Opera)
⚡ Akıllı Özet
Veri yapılarındaki diziler, aynı veri türündeki birden fazla öğeyi, her birine bir indeks aracılığıyla erişilebilen bitişik bellek konumlarında depolar. Bu eğitim, kavramı, dizilerin neden önemli olduğunu ve bunların nasıl oluşturulup işleneceğini açıklamaktadır. Python, C++, ve Java örneklerle.

Veri Yapısında Dizi Nedir?
An dizi Dizi, benzer veri türündeki birden fazla veri öğesini depolamak için kullanılan bir veri yapısıdır. Bir dizinin öğeleri bitişik bellek konumlarına yerleştirilir ve bu konumlara dizin adı verilir. elemanları Dizinin eleman sayısı, dizinin toplam eleman sayısıdır. Bir dizideki toplam eleman sayısı, dizinin eleman sayısıdır. uzunluk.
Her bir öğeye konumu üzerinden erişilir ve bu referansa "alıcı" denir. indeks or altindis.
Dizi Kavramı
Dizilerin Kavram Diyagramı
Yukarıdaki diyagram şunu göstermektedir:
- Dizi, öğelerin bulunduğu bir kaptır.
- Öğelerin "ABC", TRUE veya FALSE gibi belirli bir değeri ve veri türü vardır.
- Her öğenin, ona erişmek için kullanılan kendi indeksi vardır.
Not:
- Öğeler bitişik bellek konumlarında saklanır.
- Bir dizin her zaman dizi öğelerinin toplam sayısından azdır.
- Dizi olarak tanımlanan herhangi bir değişken birden fazla değer saklayabilir.
- Hemen hemen tüm diller aynı dizi kavramını paylaşır, ancak bunların nasıl tanımlandığı ve başlatıldığı konusunda farklılık gösterirler.
- Tüm başlatmalarda ortak olan üç unsur vardır: dizi adı, elemanlar ve elemanların veri türü.
Aşağıdaki diyagram, bir değişkenin tanımlanmasına ilişkin sözdizimini göstermektedir. dizi Python hem de C++Bu durum, diller arasında söz dizimi biraz farklılık gösterse bile kavramın aynı kaldığını göstermektedir.
Dizilerin Sözdizimini Anlayın
- Dizi adı: Öğeler koleksiyonuna kolayca ulaşmak için gereklidir.
- Veri tipi: Tür kontrolü ve veri bütünlüğü için gereklidir.
- Elemanları: Dizide bulunan veri değerleri.
Dizilere Neden İhtiyacımız Var?
- Diziler, tek bir değişkende birden fazla değer depolamak için idealdir.
- Birçok değeri kolayca ve hızlı bir şekilde işleyebilirler.
- Dizilerle değerleri sıralamak ve aramak daha kolaydır.
Bir Dizi Oluşturma Python
In PythonDiziler, listelerden farklıdır: bir liste farklı veri türlerindeki öğeleri tutabilirken, bir dizi yalnızca aynı veri türündeki öğeleri tutabilir. Python Dizileri işlemek için ayrı bir modülü vardır, adı da budur. arrayKullanmadan önce içe aktarmanız gereken bir dosya.
Not: Dizi, tamsayılar ve ondalık sayılar gibi gerçek sayılar içermelidir; metin dizeleri kabul edilmez.
Aşağıdaki kod, bir tamsayı dizisi oluşturur. Python Hesap bakiyelerini saklamak için:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Dizi Bildirmenin Yolları Python
İçinde bir dizi bildirebilirsiniz Python Aşağıdaki sözdizimini kullanarak başlatırken:
arrayName = array.array(typecode, [array_items])
Dizinin Söz Dizimi Python
- Tanımlayıcı: Değişkenler için yaptığınız gibi bir isim belirtin.
- Modüller: Python Öncelikle içe aktarmanız gereken "array" adlı özel bir modülü vardır.
- Yöntem: Dizi modülü, tür kodu ve öğeler olmak üzere iki argüman alan, diziyi başlatmak için bir yönteme sahiptir.
- Tür kodu: Mevcut tür kodlarını kullanarak veri türünü belirtin (aşağıdaki tabloya bakınız).
- Elemanları: Köşeli parantez içindeki dizi elemanlarını belirtin, örneğin [130, 450, 103].
Aşağıdaki tabloda desteklenen veri türleri için mevcut tür kodları listelenmiştir.
| Tür kodu | C Tipi | Python Menşei | Minimum boyut (bayt) |
|---|---|---|---|
| 'b' | imzalı karakter | int | 1 |
| 'B' | imzasız karakter | int | 1 |
| 'sen' | Py_UNICODE | Unicode karakter | 2 |
| 'H' | kısa imzalı | int | 2 |
| 'H' | imzasız kısa | int | 2 |
| 'ben' | imzalı int | int | 2 |
| 'BEN' | imzasız int | int | 2 |
| 'L' | uzun imzalı | int | 4 |
| 'L' | imzasız uzun | int | 4 |
| 'F' | şamandıra | şamandıra | 4 |
| 'd' | çift | şamandıra | 8 |
Belirli bir dizi değerine nasıl erişilir?
Dizideki herhangi bir öğeye dizinini kullanarak erişebilirsiniz.
Sözdizimi:
arrayName[indexNum]
Örnek:
balance[1]
Bir Dizi Öğesine Erişim
Burada, dizinin ikinci değerine 1. indeksi kullanarak eriştik. Çıktı 200'dür, bu da bakiye dizisinin ikinci değeridir.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Çıktı:
200
Dizi Operaiçindekiler Python
MKS Python Dizi modülü, dizi işlemleri için ayrı fonksiyonlar sağlar. Bunlar kalıcı yöntemlerdir, yani yapılan değişiklik dizi değişkeninde kaydedilir.
Ekle
Bu işlem, bir dizinin başına, sonuna veya herhangi bir belirtilen indeksine bir veya daha fazla öğe ekler. İki argüman bekler: indeks ve değer.
arrayName.insert(index, value)
Örnek: İndeks 1'den (200 değeri) hemen sonra yeni bir değer eklemek için, insert yönteminde indeks 2'ye referans verin.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Çıktı:
array('i', [300, 200, 150, 100])
Sil
Bu işlem, tek bir argüman alarak, bir diziden bir öğeyi değerine göre siler. İşlem tamamlandıktan sonra, öğeler yeniden düzenlenir ve indeksler yeniden atanır.
arrayName.remove(value)
Örnek:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Çıktı:
array('i', [300, 200, 100])
Ara
Bu işlem, bir öğeyi değerine göre arar ve dizinini döndürür. Bu, dizi değerlerini değiştirmeyen, tahrip edici olmayan bir yöntemdir.
arrayName.index(value)
Örnek:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Çıktı:
2
Güncelle
Güncelleme işlemi, basit bir atama operatörü kullanarak belirli bir dizindeki mevcut değeri değiştirir.Python dizilerin bir özelliği yoktur. update() yöntem.)
arrayName[index] = value
Örnek: 150'yi (2. indekste) 145 ile değiştirmek için:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Çıktı:
array('i', [300, 200, 145, 100])
çapraz
Bir yolu geçebilirsin Python Döngü kullanarak dizi oluşturma:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Çıktı:
300
200
100
Bir Dizi Oluşturma C++
C++ daha esnektir Python Diziler oluştururken. Oluşturabilirsiniz. C++ diziler Üç farklı şekilde. Aşağıdaki kod, bir tamsayı dizisi oluşturur. C++ Hesap bakiyelerini saklamak için:
#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;
}
Dizi Bildirmenin Yolları C++
Programınızın gereksinimlerine bağlı olarak, bir diziyi üç farklı şekilde tanımlayabilirsiniz.
Boyuta göre beyan:
dataType arrayName[arraySize]; // e.g. int balance[3];
Yalnızca dizi öğeleri içeren bildirim:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Boyut ve ürün bazında beyan:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Bir dizideki belirli bir değere nasıl erişilir? C++?
Bir Dizi Öğesine Erişim
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Çıktı:
200
Dizi Operaiçindekiler C++
aksine Python, içinde C++ Ekleme, silme, arama, güncelleme ve gezinme işlemleri için mantığı kendiniz programlamanız gerekmektedir.
Ekle
Ekleme mantığı şu şekildedir: Dizi öğeleri arasında döngü yapılır, öğeler daha yüksek bir indekse kaydırılır, ardından verilen indekse yeni bir öğe eklenir. Aşağıdaki örnekte beş öğe vardır ve 200 değerinin hemen ardından 150 değeri eklenir.
#include <iostream>
#include <stdio.h>
main() {
int pos = 2;
int size = 4;
int balance[] = {300, 200, 100, 50, 0};
printf("BEFORE INSERT:\n");
for(int i = 0; i < 5; i++) {
printf("%d\n", balance[i]);
}
/* SHIFT ITEMS TO A GREATER INDEX */
for(int i = size; i >= pos; i--) {
balance[i+1] = balance[i];
}
/* INSERT VALUE AT THE DESIRED INDEX */
balance[pos] = 150;
printf("AFTER INSERT:\n");
for(int i = 0; i < 6; i++) {
printf("%d\n", balance[i]);
}
}
Dizi Operaiçindekiler Java
Şimdi bir program oluşturalım. Java Kullanıcıdan dizinin boyutunu ve elemanlarının değerlerini alan bir fonksiyon.
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] + " ");
}
}
}
Bir öğeyi değiştirme Java Dizi
Bir öğeyi dizinine göre güncelleyin.
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 to change");
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] + " ");
}
}
}
Erişim Öğeleri Java Dizi
Diziyi dolaşarak tüm dizi elemanlarını yazdırın.
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] + " ");
}
}
}





