Ana içeriğe atla

Temel Veri Yapıları

Veri yapısı , bilginin saklanmış biçimidir.Programın daha verimli çalışmasının sağlanması açısından programcının veri yapılarını bilmesi gerekir.Programların hızı dikkate alındığında farklı tipte veri yapıları kullanılırsa daha verimli kodlar yazılabilir.Temel veri yapılarımız: dizi , yığın , kuyruk ve listedir.
Diziler 
Aynı türden verilerin tutulduğu gruplardır.Bir indis yardımıyla bulundukları konum ifade edilir.İndis her zaman 0 dan başlar ve n'e kadar devam eder.Dizilerde kullanılabilecek veri türleri Char , İnt , Float , Double sırasıyla 1,2 ,4 ve 8 bytelık alan tutarlar.
Yığınlar
Günümüzde en çok kullanılan veri yapısı yığınlardır.Son giren ilk çıkar veya LIFO(last in ,first out) kuralıyla çalışırlar.Bu veri yapısını üst üste koyulan bozuk paralar gibi düşünebiliriz.En üstte olan (en son koyduğumuz) parayi ilk olarak almak zorundayız.Ayrıca yığınlar derine arama yapan özyinelemeli algoritmalarda kullanılmaktadır.
Kuyruk
Bu veri yapısı ilk giren ilk çıkar veya FIFO(first in,first out) prensibiyle çalışır.Dolayısıyla işlenecek olan veri en başta yer alır.Ancak bu veri yapısında eleman silme veye kaydırma işlemi çok zahmetlidir.Bunun daha alternatif olanı iste ağaç yapısıdır.
Ağaçlar
Döngü içermemek kaydıyla düğüm ,dal ve yapraklardan oluşan yapıya ağaç veri yapısı denir.Ağaç veri yapılarının kendilerine özgü terimleri bulunur.Derinlik ,bir ağaç içerisindeki herhangi bir düğümün maksimum seviyesidir.Derece, düğümün alt düğümlerinde bulunan en çok eleman sayısıdır.Daha bir çok özellikleri bulunmaktadır ancak ben ağaçları başka bir başlık altında çok daha geniş olarak yazacağım.Şimdilik bu kadarı bizim içi yeterli diye düşünüyorum.

Yorumlar

Bu blogdaki popüler yayınlar

Bilgisayar Mühendisliğine Giriş

Öncelikle Bilgisayar Mühendisliği alanına yeni başlamış biri olarak sadece gözlemlerimi ve edindiklerimi yazacağımı söylemem lazım.Konularla alakalı daha bilgili olan arkadaşlarımız varsa mailden yada aşağıdan yorum yaparak bana ulaşabilirler.Bende bilgi alışverişinde bulunmaktan memnun olurum :) . Şimdi İstanbul üniversitesi Bilgisayar Mühendisliği 1. sınıf güz yarıyılında alınan dersler; İntroduction to Algorithm Discrete Mathematics Calculus 1 Fizik 1 BMG Seçmeli dersleri saymıyorum çünkü onlar konuyla alakasız ve her üniversite 1. sınıf öğrencisine verilen ortak derslerdir.Şimdi burada benim kişisel görüşüm olarak en önemli ve zor olan ders Algoritmalar.Algoritmalara bilmeyenler için bir yazılımın genel tablosu olarak söylenebilir.Bu derste özellikle 1 tane proglama diline yönelinmez genel olarak hepsinde mantığın kavranması için verilir.Ama uygulama dersinde eski ama her daim kullanılan C dilince örneklemeler yapılıyor.(En azından İÜ'de böyle)Ders ingilizce anlatılıyo...

Merge-Sort için güzel bir video

Graphs

Graphlar verilerin sıralanma şekilleri olarak da ifade edilebilir.Network ağlarının yapısında , arama ve sıralama algoritmalarında başvurulan şekillendirmelerdendir.Bir çok çeşit Graph bulunmaktadır.Öncelikle yapısına bakacak olursak.G=(V,E) şeklinde gösterilir.Burda V : Vertex yani tepe,doruk noktası yada en yaygın biçimiyle düğüm(node) denilebilir.:E : edge ise kenar , bağlantı anlamındadır.Vertex hiçbir zaman boş küme olamaz.Vertexin boş küme olması zaten bir graph olmadığı anlamına gelir. Graph çeşitlerine bakalım: Directed Graph : Yönü olmayan graphlardır. Simple Graph : Simple graphda döngü(loop) bulunmaz. Ağırlıklandıma yoktur. Multi Graph : Döngü bulunur veya çoklu kenar vardır . Pseudo Graph : Döngü ve çoklu kenarın ikiside bulunur.    Soldaki fotoğrafta graphların özellikleri liste şeklinde verilmiştir. Not : Yararlı olacak bir kaynak bulduğumda buraya bağlantısını ekleyeceğim.