Algoritmalar Ve Programlama Dersi 2. Ünite Sorularla Öğrenelim
Diziler, Bağlı Listeler, Kuyruklar ve Yığınlar
Dizi(array) nedir?
Dizi (array), aynı tipteki verilerin tek bir değişken altında tutulmasını sağlayan veri yapısıdır. Sabit bir değere sahip olan dizinin uzunluğu, dizi oluşturulurken belirlenir. Bir dizide bulunan verilerin her biri, o dizinin bir elemanı olarak adlandırılır. Dizinin elemanlarına erişim indis (index) adı verilen sayısal değerler aracılığıyla sağlanır.
Dizilerdeki indislerin numaralandırılması hangi sayı ile başlar?
Dizinin elemanlarına erişim indis (index) adı verilen sayısal değerler aracılığıyla sağlanır. İndislerin numaralandı- rılması 0 ile başlar, dizinin uzunluğunun 1 eksiğine kadar ardışık olarak artarak devam eder.
C dili ile dizinin tanımlanması için gerekli olan ifade hangi bileşenlerden oluşur?
C Dili ile programlamada bir dizi ile işlem yapabilmek için, diğer veri tiplerindeki değişkenlerde olduğu gibi, öncelikle dizinin tanımlanması gerekmektedir.
Dizilerin tanımlanmasındaki genel ifade şu bileşenlerden oluşur:
- dizi-tipi: Dizinin hangi tipteki verilerden oluşacağını gösterir (int, char, double,float vb. veri tipleri olabilir)
- dizi-adı: Tanımlanan dizinin adını ifade eder.
- dizi-uzunluğu: Köşeli parantez içerisinde belirtilen bu değer, dizinin uzunluğunu belirtir.
M adet sayır, N adet sütundan oluşan iki boyutlu dizinin eleman sayısı nasıl hesaplanır?
Satır ve sütunlardan oluşan tablolar şeklinde tanımlanabilen iki boyutlu diziler, çok boyutlu dizilerin en yalın halidir. M adet satır, N adet sütundan oluşan iki boyutlu bir dizi, toplam (m x n) elemana sahip olabilir. Örneğin 4 satır ve 3 sütundan oluşan iki boyutlu bir dizinin eleman sayısı (4*3)=12 olacaktır.
Üç boyutlu diziler nasıl oluşur?
Üç boyutlu diziler, iki boyutlu dizilerin katmanlar halinde bir araya gelmesiyle oluşur. Üç boyutlu bir diziyi, “iki boyutlu dizilerin dizisi” olarak da tanımlamak mümkündür. Boyut uzunlukları sırasıyla a, b, c olan üç boyutlu bir dizinin sahip olacağı toplam eleman sayısı a*b*c kadar olur.
Bağlı liste (linked list) nedir?
Bağlı liste (linked list), aynı türden nesnelerin doğrusal bir sırada ve birbirlerine bağlı şekilde saklandığı veri yapısıdır. Bağlı listedeki nesnelere düğüm (node) adı verilir ve düğümler birbirlerine bir sonraki düğümü işaret eden göstericiler (next pointer) aracılığıyla bağlanmışlardır. Ayrıca, bağlı listelerde listenin başlangıcını işaret eden bir baş gösterici (head pointer) de bulunur.
Bağlı listeleri oluşturan düğümler genellikle iki kısımdan meydana gelir. Düğümün ilk kısmında veri saklanırken, ikinci kısmında ise bir sonraki düğümün bilgisayar hafızasın- daki yeri saklanır
Bağlı listeler ve diziler arasında ne tür farklılıklar vardır?
Veri yapısı olarak benzerlik gösteren dizilerin ve bağlı listelerin, birbirleriyle kıyaslandığında, çeşitli açılardan avantajları ve dezavantajları bulunmaktadır. Bağlı listelerin ve dizilerin çeşitli ölçütlere göre karşılaştırması aşağıda verilmiştir:
-
Veri yapısı uzunluğu: Dizilerde veri yapısının uzunluğu sabittir, gerekli durumlarda dizi uzunluğu arttırılamaz veya azaltılamaz. Bağlı listelerde uzunluk dinamiktir, yeni nesneler eklenebilir, var olan nesneler silinebilir.
-
Hafıza kullanımı: Bağlı listelerdeki her bir nesnenin göstericisi için, bilgisayar ha- fızasında yer ayrılması gerekir. Dizilerde böyle bir durum söz konusu değildir.
-
Veri ekleme/silme maliyeti: Dizilerde ekleme ve çıkarma işlemleri, programlama açısından oldukça yüksek maliyetlidir. Bağlı listelerde ekleme veya çıkarma yapmak, dizilerdekine göre daha az maliyetli ve kolaydır.
-
Verilere doğrudan erişim: Dizi elemanlarına indisler aracılığıyla doğrudan erişilebilir. Bağlı listelerde ise böyle bir durum söz konusu değildir. Bağlı listenin bir elemanına erişmek için o elemanın listede aranması ve bulunması gerekir.
Bağlı liste türleri nelerdir?
Bağlı listelerin elemanları dolaşılırken ileriye doğru gitmek, geriye doğru hareket etmek ve listenin sonundan listenin başına erişmek mümkün olabilir. Belirtilen bu hareket kabiliyetleri, çeşitli türlerde bağlı listelerin ortaya çıkmasına neden olur. Bağlı listelerdeki üç tür aşağıda listelenmiştir:
- Tek yönlü bağlı liste (Singly linked list)
- Çift yönlü bağlı liste (Doubly linked list)
- Dairesel bağlı liste (Circular linked list)
Tek yönlü bağlı listelerde, liste düğümleri arasındaki gezinme hangi yönlere doğru gerçekleşir?
Tek yönlü bağlı listelerde, liste düğümleri arasındaki gezinme yalnızca ileriye doğru gerçekleşir.
Çift yönlü bağlı listelerde, liste düğümleri arasındaki gezinme hangi yönlere doğru gerçekleşir?
Çift yönlü bağlı listelerde, liste düğümleri arasında hem ileriye hem de geriye doğru gidilebilir. Çift yönlü bağlı listenin bir düğümü, bir sonraki düğümü işaret eden göstericinin (next pointer) yanı sıra, bir önceki düğümü işaret eden göstericiyi (previous pointer) de içerir.
Dairesel bağlı liste nedir?
Bir bağlı listenin son düğümünün bir sonraki düğümü işaret eden göstericisi (next poin- ter) listenin ilk düğümünü işaret ettiğinde liste dairesel hale gelmiş olur. Bağlı listelerin bu çeşidine dairesel bağlı liste denilmektedir.
Programlamada FIFO kuralı nedir?
Programlamada kuyruk (queue), verilerin doğrusal sırada tutulmasını sağlayan bir veri yapısıdır. Bir kuyruğun başı (front) ve sonu (rear) bulunur. Kuyruk yapısındaki temel işlemler olan ekleme (enqueue) son taraftan, çıkarma (dequeue) ise baş taraftan gerçekleştirilir. Dolayısıyla kuyruğa ilk giren eleman, kuyruktan ilk çıkan eleman olur.
FIFO (First-In First-Out): Programlamada kuyruklar FIFO kuralı ile anılır. Bu ifade, “İlk Giren İlk Çıkar” şeklinde tercüme edilebilir.
Programlamada yığınlar hangi amaçla kullanılır?
Yaşantımızdaki çeşitli aktivitelerde nesnelerin üst üste dizilmesi gerekir. Üniversite ye- mekhanesindeki tepsiler, restoran mutfağındaki tabaklar, elbise dolabı rafındaki kıyafetler, nesnelerin günlük yaşamda üst üste dizilmesi için gösterilebilecek basit örneklerdir. Bir üniversite yemekhanesindeki tepsilerden almak istediğimizde, temiz tepsilerin içerisinden en üstte olanı alırız. Temiz tepsiler biriktirilirken, yeni gelen tepsiler var olanların üstüne eklenir. Nesnelerin üst üste dizilimi, günlük hayatta olduğu gibi programlamada da var olan bir gereksinimdir. Bu ihtiyaç, yığın (stack) adı verilen veri yapıları ile karşılanır.
Yığın, verilerin doğrusal bir şekilde tutulduğu, ekleme ve çıkarma işlemlerinin en üst noktadan yapıldığı bir veri yapısıdır. Eklenen veri, yığının en üst noktasında saklanırken; çıkarılan veri de yığının en üst noktasından alınır. Yığının en üst noktasının takibi, yığının tepe noktası (top) aracılığıyla sağlanır
Programlamada yığınlar üzerinde yapılan temel işlemler nelerdir?
Programlamada, yığınlar üzerinde yapılan temel işlemler eleman ekleme (push), ele- man çıkarma (pop) ve en üstteki elemanı elde etmedir (peek). Pop işleminde en üstteki eleman yığından çıkarılırken, peek işleminde yalnızca bu elemanın değeri elde edilir, eleman yığından çıkarılmaz. Bu işlemlerin yanı sıra yığının doluluk kontrolü (isFull) ve yığının boşluk kontrolü (isEmpty) gibi yardımcı fonksiyonlar da kullanılabilir.
LIFO kuralı nedir?
LIFO (Last-In First-Out): Programlamada yığınlar LIFO kuralı ile anılır. Bu ifade, “Son Giren İlk Çıkar” şeklinde tercüme edilebilir.
-
AÖF Sınavları İçin Ders Çalışma Taktikleri Nelerdir?
date_range 23 Saat önce comment 11 visibility 16704
-
2024-2025 Öğretim Yılı Güz Dönemi Kayıt Yenileme Duyurusu
date_range 7 Ekim 2024 Pazartesi comment 1 visibility 1057
-
2024-2025 YKS Ek Yerleştirme İle Yerleşen Adayların Çevrimiçi (Online) Başvuru ve Kayıt Duyurusu
date_range 24 Eylül 2024 Salı comment 1 visibility 547
-
Çıkmış Soruları Gönder Para Kazan!
date_range 10 Eylül 2024 Salı comment 5 visibility 2614
-
2023-2024 Öğretim Yılı Yaz Okulu Sınavı Sonuçları Açıklandı!
date_range 27 Ağustos 2024 Salı comment 0 visibility 822
-
Başarı notu nedir, nasıl hesaplanıyor? Görüntüleme : 25486
-
Bütünleme sınavı neden yapılmamaktadır? Görüntüleme : 14443
-
Akademik durum neyi ifade ediyor? Görüntüleme : 12478
-
Harf notlarının anlamları nedir? Görüntüleme : 12436
-
Akademik yetersizlik uyarısı ne anlama gelmektedir? Görüntüleme : 10363