Ana sayfateknolojiYazılım ve ProgramlamaVeri Yapısı Nedir?
💻
Teknoloji · Konu Anlatımı

Veri Yapısı Nedir? Temel Türleri ve Kullanım Amaçları

Programlamaya Giriş· Genel· 5 dk okuma· Son güncelleme: 27 Ağustos 2026
Öğreniyo İçerik Ekibi tarafından hazırlandı · Editör: Yusufhan Seyis
Kısaca

Veri yapısı, bilgilerin bilgisayarda düzenlenmesini, saklanmasını ve erişilmesini sağlayan programlama yaklaşımıdır. Dizi, bağlı liste, yığın, kuyruk, ağaç ve graf; verileri farklı biçimlerde ilişkilendirir ve farklı işlemlere uygun çözümler sunar. Doğru seçim, veriye nasıl erişileceği ve hangi işlemlerin sık yapılacağına göre belirlenir.

Bu yazıda (5)

Programlar yalnızca veriyi üretmez; veriyi saklar, arar, ekler, siler ve başka verilerle ilişkilendirir. Veri yapıları, bu işlemlerin düzenli ve amaca uygun biçimde yapılmasını sağlayan temel programlama kavramlarıdır.

Veri yapısının tanımı

Veri yapısı, verilerin bilgisayar belleğinde nasıl düzenleneceğini, saklanacağını ve bu verilere hangi işlemlerle erişileceğini belirleyen yapıdır. Bir programdaki bilgiler tek tek değişkenlerde tutulabileceği gibi, aralarındaki ilişkiye ve kullanım biçimine göre bir dizi, bağlı liste, ağaç veya graf içinde de düzenlenebilir. Bu nedenle veri yapısı yalnızca bir veri topluluğu değil, verinin bellekteki gösterimiyle o veri üzerinde işlem yapma biçiminin birlikte ele alınmasıdır.

Bir veri yapısının çalışması, elemanların bellekte nasıl konumlandırıldığı ve programın bu elemanlara nasıl ulaştığıyla ilgilidir. Örneğin dizi elemanları belirli bir sırada tutulur ve her elemana konumunu gösteren bir indisle ulaşılır. Bağlı listede ise her düğüm kendi verisini ve sıradaki düğüme ilişkin bağlantıyı taşır. Böylece program, verileri doğrudan konum numarasıyla değil, yapı içindeki bağlantıları izleyerek bulur. Ekleme, silme, arama ve gezinme gibi işlemler de seçilen yapının bu düzenine göre gerçekleştirilir.

Örneğin bir uygulamada öğrencilerin notları sıralı biçimde tutulacak ve belirli bir sıradaki nota sık sık erişilecekse dizi uygun bir düzen sunabilir. Öğrenci kayıtlarının program çalışırken araya eklenip çıkarılması önemliyse bağlantılarla ilerleyen bir bağlı liste tercih edilebilir. Burada aynı veriler kullanılmasına rağmen, verilerin düzenlenme ve erişilme biçimi değiştiği için veri yapısı da değişir. Ayrıntılı dizi-bağlı liste karşılaştırması ayrı bir konunun kapsamındadır.

Veri yapılarının programlamadaki amacı

Veri yapılarının temel amacı, veriyi programın ihtiyaç duyduğu işlemlere uygun biçimde düzenlemektir. Programın yalnızca bilgiyi saklaması yeterli değildir; bu bilgiye ulaşması, yeni kayıt eklemesi, kayıt silmesi veya elemanlar arasında gezinmesi de gerekir. Veri yapısı, bu işlemlerin hangi düzende ve hangi bağlantılar üzerinden yapılacağını belirleyerek programın veriyle çalışmasını kolaylaştırır.

Örneğin bir arama sisteminde bilgiler anahtarlarla bulunacaksa anahtar-değer ilişkisini destekleyen bir yapı kullanılabilir. Bir dosya sisteminde klasörlerin ve dosyaların hiyerarşik ilişkisi ağaçla gösterilebilir; bilgisayarlar veya yollar arasındaki bağlantılar ise graf biçiminde modellenebilir. Büyük veri kümelerinde uygun yapı seçilmediğinde arama, ekleme veya silme işlemleri programın gereksiz yere daha fazla bellek ve işlem kullanmasına yol açabilir. Bu yüzden veri yapıları, algoritmaların ve uygulamaların veri üzerinde etkili çalışmasına temel oluşturur.

Veri yapıları soyut veri türleriyle ilişkilidir: soyut veri türü hangi işlemlerin yapılacağını tanımlarken veri yapısı bu işlemlerin bellekte nasıl gerçekleştirileceğini gösterir. Zaman ve bellek verimliliği de seçimin önemli sonuçlarıdır; aynı işlem farklı yapılarda farklı miktarda işlem süresi veya bellek gerektirebilir. Ayrıntılı verimlilik ve karmaşıklık incelemesi ayrı bir konudur.

Veri yapısı seçimini belirleyen temel ölçütler

Bir veri yapısı seçilirken yalnızca verinin nerede saklanacağına bakılmaz; veriye nasıl erişileceği ve veri üzerinde hangi işlemlerin ne sıklıkta yapılacağı da değerlendirilir. Sık kullanılan ölçütler arasında belirli bir elemana erişim, yeni eleman ekleme, eleman silme, veriler arasında sırayla ilerleme ve elemanlar arasındaki ilişkileri temsil etme ihtiyacı bulunur. Ayrıca verinin boyutunun önceden belli olup olmadığı ve program çalışırken değişip değişmeyeceği de seçimi etkiler.

Örneğin belirli bir konumdaki elemana hızlı ulaşmak önemliyse indisle erişim sunan bir dizi düşünülebilir. Elemanların araya eklenmesi veya çıkarılması daha önemliyse bağlantılarla çalışan bir yapı daha uygun olabilir. İşlemlerin yalnızca en son eklenen eleman üzerinde yapılması gereken durumda yığın; ilk gelen elemanın önce işlenmesi gereken durumda kuyruk tercih edilir. Veriler arasında üst-alt ilişkisi varsa ağaç, birbirine farklı bağlantılarla bağlanan varlıklar söz konusuysa graf daha anlamlıdır. Bu ölçütler birlikte değerlendirilir; tek bir veri yapısı bütün programlar için en iyi seçenek değildir.

Bir veri yapısının gerçek verimliliği, onun somut uygulanışına da bağlıdır. Aynı genel davranış, farklı veri yapıları kullanılarak gerçekleştirilebilir; bu nedenle seçim, programın veri düzeni ve beklenen işlemleriyle birlikte düşünülmelidir. Ayrıntılı algoritmik karmaşıklık analizi bu makalenin kapsamı dışındadır.

Temel doğrusal veri yapıları

Doğrusal veri yapılarında elemanlar, genel olarak bir sıra üzerinde art arda düşünülür. Dizi, bağlı liste, yığın ve kuyruk bu grubun temel örnekleridir; ancak elemanlara erişim ve işlem yapma kuralları birbirinden farklıdır.

Dizi, elemanları belirli bir sıra içinde tutar ve elemanlara indis adı verilen konum numaralarıyla ulaşır. Bu düzen, belirli bir konumdaki elemana erişmeyi kolaylaştırır. Dizi sabit uzunlukta olabilir veya kullanılan uygulamaya göre büyüyüp küçülebilir. Bağlı liste ise düğümlerden oluşur; her düğüm bir değer ve sonraki düğüme giden bağlantıyı içerir. Bu yapı, elemanların bellekte yan yana bulunmasını zorunlu kılmadan bir sıra oluşturur.

Yığın, ekleme ve çıkarma işlemlerinin aynı uçtan yapıldığı doğrusal yapıdır. Bu nedenle en son eklenen eleman ilk çıkar; tabakaların üst üste konulup üstten alınmasına benzer bir işlem sırası oluşur. Kuyrukta ise eleman ekleme bir uçtan, çıkarma diğer uçtan yapılır. Böylece ilk eklenen eleman ilk çıkar; bekleyen işlerin sırayla ele alınması gibi durumlar kuyruk düzenine uygundur. Yığın ve kuyruğun uygulama ayrıntıları ayrı bir konudur.

Örneğin bir programda işlemlerin geri alma sırasını tutmak için yığın mantığı, sıraya alınan görevleri geliş sırasıyla işlemek için kuyruk mantığı kullanılabilir. Dizi ve bağlı listenin ayrıntılı karşılaştırması ise bu yapıların bellek düzeni ve işlemler bakımından daha kapsamlı incelenmesini gerektirir.

Temel doğrusal olmayan veri yapıları

Doğrusal olmayan veri yapılarında elemanlar tek bir sıra üzerinde ilerlemek zorunda değildir. Bu yapılar, veriler arasındaki hiyerarşik veya çoklu bağlantıları göstermek için kullanılır. Ağaç ve graf, bu grubun temel örnekleridir.

Ağaç, düğümlerin üst-alt ilişkisi içinde düzenlendiği hiyerarşik bir yapıdır. En üstte kök adı verilen düğüm bulunur; diğer düğümler bu kökten ayrılan alt yapılarda yer alır. Böyle bir düzen, bir klasörün alt klasörlere ayrılması veya bir kategori sisteminin basamaklı biçimde gösterilmesi gibi durumları modellemeye uygundur. Bir düğümün altında başka düğümler bulunabilir ve yapı bu şekilde dallanabilir. Ağaç ve graf algoritmaları burada ayrıntılı olarak ele alınmaz.

Graf ise düğümlerden ve bu düğümleri birbirine bağlayan kenarlardan oluşur. Düğümler kişi, şehir, bilgisayar veya başka bir varlığı; kenarlar ise bu varlıklar arasındaki ilişkiyi temsil edebilir. Örneğin bilgisayar ağındaki cihazlar düğüm, cihazlar arasındaki bağlantılar kenar olarak modellenebilir. Graf bağlantıları tek yönlü veya çift yönlü olabilir ve bir düğüm birden fazla düğümle ilişkilendirilebilir. Bu yönüyle graf, hiyerarşi zorunluluğu olmadan ağ biçimli ilişkileri göstermeye yarar.

Günlük hayatta

Bilgisayardaki dosya klasörleri hiyerarşik olduğu için ağaç yapısıyla, bir harita üzerindeki şehir ve yollar ise düğüm ve bağlantılardan oluştuğu için graf yapısıyla modellenebilir. Sıraya alınan yazdırma işleri kuyruk düzenine, bir uygulamadaki geri alma işlemleri ise yığın düzenine örnektir.

Sık sorulan sorular

Veri yapısı kısaca nedir?

Veri yapısı, verilerin bellekte nasıl düzenleneceğini ve bu verilere erişme, ekleme, silme gibi işlemlerin nasıl yapılacağını belirleyen yapıdır.

Dizi ile bağlı liste arasındaki temel fark nedir?

Dizi elemanlara genellikle indisle ulaşır; bağlı liste ise düğümler arasındaki bağlantılar üzerinden ilerler. Ayrıntılı karşılaştırma, bu yapıların bellek ve işlem özelliklerini birlikte incelemeyi gerektirir.

Yığın ve kuyruk nasıl ayrılır?

Yığında son eklenen eleman önce çıkar. Kuyrukta ise ilk eklenen eleman önce çıkar.

Ağaç ile graf arasındaki temel fark nedir?

Ağaç, verileri hiyerarşik bir yapı içinde düzenler. Graf ise düğümler arasındaki daha genel ve çoklu bağlantıları temsil eder.

Veri yapısı seçerken nelere bakılır?

Erişim, ekleme, silme, sırayla gezinme, veri ilişkileri ve verinin boyutunun değişip değişmediği gibi ihtiyaçlara bakılır.

Kaynaklar
SıradakiDizi (Array)