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

What is design pattern ?

Tasarım desenleri tam olarak Türkçe karşılığı olmasa da bu şekilde ifade edilir.Genelde yazılımın tasarım sürecinde karşımıza çıkan sorunlara , tecrübeler doğrultusunda kaliteli çözümler üretilen kalıplardır.Bu kalıpları kullanarak daha ileride karşımıza çıkacak sorunlara yada updatelere esnek çözümler bulabiliriz.Bu sayede hem kodlarımız daha anlaşılır olur hemde değişiklikler rahatlıkla uygulanabilir. Var olan bir problem üzerinde çalışan programcı bulunan çözümü paternleri bildiği için hemen anlayacak ve nasıl bir yol izleyeceğini bilecektir. Creator Design Patterns Abstract Factory Builder  Prototype Singleton Verdiğimiz bilgileri örnekle açıklamak gerekirse; ihtiyacımız olan bütün sistemin kullanabileceği ancak sadece bir tane oluşturulabilen bir class tasarlamak.Biz bunu yukarıda da isimlerinden anlaşılacağı gibi zaten bu yapıyı başkalarıda kullanmış ve en stabil duruma getirilip adı Singleton Design Pattern koyulmuş tasarımı kullanabiliriz. Abstract Factory , B...

Sieve of Eratosthenes (Asal Sayı Bulma)

#include <stdio.h> int main() { int a, b, c = 0; printf (" Bir sayi giriniz: "); scanf ("%d", &a); printf ("\n"); for (b = 2; b < a; b ++) { // Kullanıcıdan alınan sayı 2'den başlanarak, kendisine kadar // olan tüm tamsayılara sırayla bölünüyor. Eğer tam olarak // bölünüyorsa c'nin değeri bir artırılıyor. if (a % b == 0) c ++; } // c'nin başlangıç değeri 0 idi.Program çalıştıktan sonra c'nin  // değeri 1 olarak kalması , // kullanıcının girdiği sayının 2'den itibaren sadece // kendisine tam olarak bölünebildiği anlamını taşır. Yani girilen // sayı asaldır. printf (" %s\n", (c == 1) ? "Sayi asaldir." : "Sayi asal degildir."); return 0;

Yazılımda Başarıya Ulaşmayı Engelleyen Faktörler

İşte Yazılımda Başarıya Ulaşmadaki Engellerden 10′u Kendi Görüşlerimle Anlatmaya Çalıştım; İşte O Engeller Sosyal Medya, Online Oyunlar, İstikrarsızlık, Üretememezlik, Aile Baskısı, Sosyal Çevre, Ağır Dersler, Çabuk Pes Etme, Sabırsızlık… 1)Sosyal Medya; Zamanımızın büyük çoğunluğunu facebook,twitter,instagram vb yerlerde geçiriyoruz bu da bizim çalışmamıza engel olup bir şeyler üretmemizin önüne geçiyor 2)Online Oyunlar; Yazılımcıların en büyük düşmanı sadece yazılımcılar değil tüm insanların en büyük düşmanı zamanın nasıl geçtiğini fark etmezsin bile.. 3)İstikrarsızlık; Tam bir fikir üretirsin yazamaya başlarsın gider gider ve devamı gelmez… 4)Üretememezlik; Acayip kodlama yapmak istersin ama bir fikir olmaz üretecek bir şeyin olmaz ve boşlukta kalırsın 5)Aile Baskısı; Kafanda proje olur yazmak istersin ama ailen bilgisayar başında çok zaman geçirdiğinden dolayı rahatsız olur bu durum senide üzer bunun en iyi ilacı  ÜNİVERSİTE  ! 6)Sosyal Çevre; Yine bi...