Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi"

Transkript

1 Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması

2 Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip bir veri modelidir. Kullanım yerleri: o Kodlama/kod çözme işlemleri o Dosya sistemi o Oyunların olası hamleleri o Sıralı verilerin hızlı aranması gibi..

3 Her ağacın bir kök işaretçisi vardır, herhangi bir düğüm eklenmemiş ise NULL değerini alır. Kök işaretçisine bağlı olan düğüm kök(root) olarak adlandırılır, ağaç bunun etrafında serpilir. Kendisine hiçbir bağlantı yapılmayan düğümler yaprak(leaf) olarak adlandırılır. Kök ve yaprak dışındaki düğümlere ara düğüm denilir. Ağacın herhangi bir dalı kesildiğinde ortaya alt-ağaç çıkar; bir ağaç veya alt-ağaç birçok alt-ağacın birleşmesinden oluşabilir ve alt-ağacın kendisi de ağaç özelliğindedir(rekürsif programlamaya uygundur).

4 Genel olarak, veri ağacın düğümlerinde tutulur. Dallar ise düğümlerin birbirleriyle bağlantısını gösterir. Örnek ağaç üzerindeki kök, A, B ve C düğümlerinin durumu şöyledir:

5 Tanım Düğümler Kök A B C Derece/Çocuk Kardeş Düğüm Düzey Aile Yok d2 d26 d3 Ata Yok Kök (d1) Yol (Kök düğümden) d1 d1, d2, d4 d13, d7, d3, kök d1, d3, d7, d13, d26, d52 Kök (d1) d1, d3, d7 Derinlik Yükseklik

6 Ağaç Türleri: o İkili Arama Ağacı: Bir düğüm en fazla iki tane çocuğa sahip olabilir ve alt/çocuk bağlantıları belirli bir sırada yapılır. o Kodlama Ağacı: Bir alfabedeki veya daha genel olarak bir kümedeki karakterlere kod atanması için kurulan ağaç şeklidir. o Sözlük Ağacı: Bir sözlükte bulunan sözcüklerin tutulması için kurulan bir ağaç şeklidir. Amaç, arama işleminin en performanslı bir şekilde yapılmasıdır. Sözlük ağaçları bir araya gelip sözlük ormanını oluşturur.

7 o Kümeleme Ağacı: Bir çeşit sıralama ağacıdır; aslında ikili arama ağacı da sıralama ağacıdır. Ancak kümeleme ağacında çocuk düğümler her zaman aile düğümünden daha küçük değerlere sahip olur(yada tersi olabilir). Dolayısıyla kök düğüm en büyük değere sahip olurken yaprak türleri kendi ailesi içerisinde en küçük değerlere sahip olurlar. o Bağıntı Ağacı: Bir matematiksel bağıntının ağaç şeklinde tutulması için tanımlanmış bir ikili ağaç uygulamasıdır. Bağıntı ağacının yapraklarda değişkenler veya sabit değerler bulunurken, kök ve ara düğümlerde de işlem değeri olan simgeler(operatörler) bulunur.

8 Ağacın Bellekte Tutulması: Ağacın bilgisayar belleğinde tutulması için indis-bağlantısı veya düğüm-bağlantısı yöntemleri kullanılmaktadır. İndis-bağlantısı yaklaşımında ağacın düğümleri bir dizi üzerinde tutulurlar; dizinin ilk elemanı kök olup alt hiyerarşideki diğer düğümlere bir bağlantı uyarınca erişilir. İndis-bağlantısı, bir düğümün çocuklarına erişmek için gerekli indisi o andaki aile düğümün indis değerine göre hesaplamada kullanılır. Böylece hiçbir bağlantı bilgisi kullanılmadan bir düğümde onun herhangi bir çocuğuna indis hesabı yapılarak erişilebilir. Düğüm-bağlantısı olan yöntemde düğümler arası bağlantılar veri yapısı içerisine eklenmiş olan işaretçi değişkenler aracılığıyla sağlanır.

9 İndis-Bağlantısı Yaklaşımında Veri Yapısı Ağacın indis-bağlantısına göre bellekte tutulması düğümlerin veri kısmının bir dizi üzerinde tutulması kavramına dayanır. Dizinin ilk elemanı ağacın köküdür. Daha sonraki elemanlar ağaç hiyerarşisi üzerindeki herhangi bir düğüme karşılık düşer. Ancak dizinin ikinci ve üçüncü elemanları kök düğümün çocuklarıdır; daha sonraki, yani dördüncüden sonraki düğümler için ağacın derecesi bilinmelidir.

10 İndis-Bağlantısı Yaklaşımında Veri Yapısı İkili ağaç (derecesi 2) d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 Indis sol (j)=2j+1 Indis sag (j)=2j+2

11 Düğüm-Bağlantısı Yaklaşımında Veri Yapısı Bu yaklaşımda tutulan yol her bir bağlantı için birer bağlantı bilgisi tutulmasıdır. struct ikili{ Veri kısmı; İşaretçiTipi sol,sağ; }AGAC2; İkili ağaç için veri yapısı içerisindeki bilginin yanı sıra 2 adet işaretçi olmalıdır(m-dereceli için m tane işaretçi)

12 Düğüm-Bağlantısı Yaklaşımında Veri Yapısı M bellekalanı = sizeof(veri Yapısı) + sizeof(2 adet bağlantı) Bağlantıları tutacak olan işaretçiler 4 Byte ise ikili bir ağaçta 8 Byte sadece bağlantıları göstermek için kullanılır.

13 Huffman Kodlama Ağacı Kodlama ağacına dayanılarak değişen uzunluktaki kod ataması, özellikle veri sıkıştırma algoritmalarında kullanılan bir yöntemdir. Bu amaçla Huffman, ShannonFano gibi birçok kodlama ağacı şekli geliştirilmiştir. Kodlama tablosunda kod uzunluğu log 2 N bağıntısından hesaplanır. N=4 için log 2 4=2 bulunur. Genişletilmiş ASCII tablosu için (256 karakter) log 2 256=8 elde edilir.

14 Huffman Kodlama Ağacı Karakter Kod A 00 B 01 C 10 D 11 Kodlama ağacı karakterlerin kullanım sıklığına göre oluşturulur.

15 BABACABA karakterlerinin her biri bellekte 8 bitlik yer kaplar, 8x8=64 bit=8 byte. Huffman ile elde edilen sonuçlara göz atalım: A=0, B=10, C=110, D=111 yazılırsa olur = 13 bit! Tablodaki değerlerle yapılmış olsaydı her biri 2 bit olmak üzere 2x8=16 bit=2 byte yer kaplamış olacaktı. Yöntem en çok kullanılan elemanın en düşük boyutlu bit ile temsil edilmesi üzerine kurulmuştur.

16 İkili Ağaçlar ve İkili Arama Ağacı İkili ağaçlarda bir düğümün derecesi en fazla iki olabilir, yani en fazla iki tane çocuk bağlantısı olabilir. İkili arama ağacına bir düğüm eklenirken ağacın soluna mı, sağına mı ekleme yapılacağı düğümün veri alanı içerisindeki anahtar sözcüğe bakılarak yapılır. Bu konudaki genel yaklaşım, anahtar veri aile düğümünden küçük ise soluna büyük ise sağına eklemektir. Eğer anahtar veri sözce(string) ise alfabetik olarak önce geliyorsa soluna, sonra geliyorsa sağına eklenir.

17 Bağıntı ağaçları da ikili ağaç şeklindedir; bağıntı ağacında amaç bir matematiksel bağıntıya ait operatör, değişken ve sabitleri bağıntıyı ifade edecek şekilde ikili ağaç üzerinde tutmaktır. İkili ağaçtaki bir düğüme ait veri yapısında veriye ek olarak iki tane işaretçi tutulur; biri sol diğeri sağ olarak adlandırılan bu işaretçilere düğümün çocukları bağlanır.

18

19

20 İkili Ağaç Üzerinde Dolaşma İkili ağaç üzerinde öncekök(preorder), ortadakök(inorder) ve sonrakök(postorder) olmak üzere üç farklı dolaşma şekli uygulamalara çözüm olmaktadır. Önce-Kök: PAPATYA Ortada-Kök: PAAPYTA Sonra-Kök: PAAYATP

21 o Önce-Kök(preorder): Kök, Sol, Sağ o Ortada-Kök(inorder): Sol, Kök, Sağ o Sonra-Kök(Postorder): Sol, Sağ, Kök Önce-kök yaklaşımında önce ağacın kökü, sonra sol altağaç ve ardından sağ altağaç Ortada-kökte ise, önce sol altağaç, kök ve sağ altağaç Sonra-kökta ise, önce sol altağaç, sonra sağ altağaç ve kök dolaşılır.

22 Önce-Kök Sonra-Kök Ortada-Kök

23

24 Bağıntı Ağaçları

25 Bağıntı Ağaçları Bir matematiksel bağıntının ağaç şeklinde tutulması için tanımlanmış bir ikili ağaç uygulamasıdır. Birçok derleyici, program içerisindeki denklemleri, bağıntı ağacı aracılığıyla ayrıştırır ve karşılığı olan kodları üretir. Bağıntı ağacı üç farklı yöntem ile çıkarılabilir: iç-takı, ön-takı ve son-takı.

26 İç-takı (İnfix) Bağıntı ağacının iç-takı yöntemine göre değerlendirilmesi, bir önceki sayfada verilen örneklerde görüldüğü gibi, matematikte alışılagelen şekilde, operatörlerin ortada, değişken veya sabit değerlerin operatörün kenarlarında bulunması şeklinde yapılır. Değerlendirmeye iki çocuğu da yaprak (yani parametreleri hazır; işleme hazır) olan en soldaki altağaçtan başlanır ve sağa doğru, sırasıyla, yine çocukları yaprak olan altağaçlar ele alınarak bağıntı değerlendirilir. Ön-takı (Prefix) ve Polonyalı Notasyonu Ön-takı yönteminde operatörler kendilerine karşı düşen parametrelerin (değişken veya sabit değerler) önündedir. Ön-takı yöntemi ikili ağaç üzerinde önce-kök dolaşması gibidir. Son-takı (Postfix) Son-takı yöntemi ters Polonyalı notasyonu (reverse Polish notation) olarak da adlandırılır ve operatörler kendi parametrelerinin arkasından gelir. Ön-takı ve sontakı yönteminin en önemli özelliği bağıntıların parantez kullanılmadan gösterilebilmesidir.

27 İkili Arama Ağacı İkili arama ağaçları arama işleminin yoğun olduğu uygulamalarda ilk başvurulan veri modelleridir; arama işleminde kullanılacak anahtar sözcüğe bağlı olarak bir veya birden fazla ikili arama ağacı kurularak arama işlemi logn mertebesinde yapılır.

28 6 eklenmesi 11 eklenmesi 38 eklenmesi

29 İkili Arama Ağacı Uygulaması Ağacın herhangi bir düğümünde bir tamsayı ve bir de 100 karakterlik bir mesaj tutulacaktır, bunlara ek olarak biri sağ diğeri sol olmak üzere iki adet işaretçiye de sahip olmalıdır. Böyle bir düğümün veri yapısı; struct topluluk{ int bilgi; char mesaj[100]; struct topluluk *sol,*sag; }AGAC2; AGAC2 bilgi mesaj sol sag AGAC2 *kok=null;

30 Bu aşamada bir ikili ağaç oluşmuş olur. Ancak içerisinde hiçbir düğüm yoktur. İlk yapılacak işlem ağaca düğüm ekleyecek algoritmanın tasarlanmasıdır. Bunun içinde her şeyden önce sıralamada kullanılacak olan anahtar sözcüğün belirlenmesidir. Bu örnekte, türü tamsayı olan bilgi adlı değişken anahtar veri olarak seçilmiştir. Dolayısıyla ikili ağaç üzerindeki ekleme, silme, arama gibi işlemler bu anahtar sözcük üzerinden gerçekleştirilecektir.

31 /* Düğüm Ekleme Fonksiyonu */ void ekle(agac2 *agackok, AGAC2 *eklenen) { if(agackok==null) kok=eklenen; else { if(eklenen->bilgi <= agackok->bilgi) { if(agackok->sol==null) agackok->sol=eklenen; else ekle(agackok->sol, eklenen); } else { if(agackok->sag==null) agackok->sag=eklenen; else ekle(agackok->sag, eklenen); } } }

32 /* Listedeki tüm kayıtları listeleme */ void listele(agac2 *agackok) { if(agackok=!null) { listele(agackok->sol); yazekrana(agackok); listele(agackok->sag); } } /* Ağaç üzerinde bir kayıt arama */ AGAC2 *ara(agac2 *agackok, int aranan) { while(agackok!=null && agackok->bilgi!=aranan) { if(aranan <= agackok->bilgi) agackok=agackok->sol; else agackok=agackok->sag; } } return agackok;

33 7 nin Çıkarılması 5 in Çıkarılması 23 ün Çıkarılması

34 /* İkili ağaç üzerindeki düğüm sayısını sayar*/ int sayagacdugum(agac2 *agackok, int miktar) { if(agackok==null) return miktar; miktar++; miktar=sayagacdugum(agackok->sol, miktar); miktar=sayagacdugum(agackok->sag, miktar); return miktar; }

Ağaçlar(Trees) AĞAÇ VERİ MODELİ

Ağaçlar(Trees) AĞAÇ VERİ MODELİ Ağaçlar(Trees) AĞAÇ VERİ MODELİ Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyerarşik yapıya sahip bir veri modelidir; bilgisayar yazılım

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli Veri Modelleri Ağaç Veri Modeli Ağaç Veri Modeli Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen bir veri modelidir. Ağaç veri modeli daha fazla bellek

Detaylı

BIL222 Veri Yapıları ve Algoritmalar

BIL222 Veri Yapıları ve Algoritmalar BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı

Detaylı

Ağaç (Tree) Veri Modeli

Ağaç (Tree) Veri Modeli Ağaç (Tree) Veri Modeli 1 2 Ağaç Veri Modeli Temel Kavramları Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir; aynı aile soyağacında olduğu

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Ağaç Yapıları Sunum planı Genel kavramlar İkili ağaç İkili arama ağacı AVL Tree B-Tree Genel Kavramlar Bir ağaç yapısı

Detaylı

Veri Yapıları. Ağaçlar

Veri Yapıları. Ağaçlar Veri Yapıları Ağaçlar 1 Ağaç Veri Modeli Temel Kavramları 2 Ağaç, bir kök işaretçisi, sonlu sayıda düğümleri ve onları birbirine bağlayan dalları olan bir veri modelidir. Aile soyağacında olduğu gibi hiyerarşik

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 7 Ağaç (Tree) Veri Yapısı Giriş Ağaç VY Temel

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

BIP116-H14-1 BTP104-H014-1

BIP116-H14-1 BTP104-H014-1 VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1 Dosya Sıkıştırma (File Compression) Kütük Organizasyonu İçerik Dosya sıkıştırma nedir? Dosya sıkıştırma yöntemleri nelerdir? Run-Length Kodlaması Huffman Kodlaması Kütük Organizasyonu 2 Dosya Sıkıştırma

Detaylı

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > = Week 9: Trees 1. TREE KAVRAMI 2. İKİLİ AĞAÇ VE SUNUMU 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI < 6 2 > = 1 4 8 9 1. TREES KAVRAMI Bir ağaç bir veya daha fazla düğümün (T) bir kümesidir : Spesifik olarak

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN

Detaylı

Ağaçlar (Trees) Ağaçlar (Trees)

Ağaçlar (Trees) Ağaçlar (Trees) Giriş Binary Trees (İkilik Ağaçlar) Full Binary Trees Proper Binary Trees Complete Binary Trees Heap Binary Trees Balanced Binary Trees Binary Search Trees (İkilik Arama Ağaçları) Yrd.Doç.Dr. M. Ali Akcayol

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı

Detaylı

DAVİD HUFFMAN ALGORİTMASI Sayısal haberleşme tekniklerinin önemli ölçüde arttığı günümüzde, sayısal verilen iletilmesi ve saklanması bir hayli önem kazanmıştır. Sayısal veriler çeşitli saklayıcılarda saklanırken

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 4 Stack (Yığın, Yığıt) Veri Yapısı Stack Çalışma

Detaylı

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK

AVL Agacı {\} /\ Suhap SAHIN Onur GÖK AVL Agacı {\} /\ Suhap SAHIN Onur GÖK AVL (Adel son-vel skiĭ) Landis Agacı AVL Agacı: Dengeli ikili agaç Denge Faktörü Kök isaretçisi A B c D E D E Agaç Veri Modeli Yükseklik Kök (root) A 2 B C 1 D E F

Detaylı

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI. VERİ YAPILARI HASH TABLOLARI Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ muratgok@gmail.com Hash tabloları Hash tablo veri yapısı ile veri arama, ekleme ve silme işlemleri

Detaylı

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü Skip List(Atlamalı Liste) Veri Yapısı Seminer-30.03.2007/SkipList 1 Temel İhtiyaçlar Nelerdir? 1. Bilgisayarda verileri belirli yapıda

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Çarpışma çözümleme yöntemleri Sunum planı Bağlantıları kullanarak çarpışmaların çözümlenmesi. Coalesced Hashing (Birleştirilmiş

Detaylı

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15. Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15 Problem Seti 4 Okumalar: Bölüm 12 13 ve 18 Hem egzersizler

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR 2012-2013 Karakter Dizgisi Karakter Dizgisi Üzerine İşlemler Altdizgi Tanım 3.1.1: Bir X kümesi üzerinde bir karakter dizgisi (string)

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 8 Problem Tanımı Arama Ağaçları İkili Arama

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı Yığın ve kuyruk modelleri verinin geçici olarka saklandığı, davranışları birbirinin tamamen tersi olan ve bellek üzerinde kurulmuş birer saklama

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Veri Hiyerarşisi Dosyalara Giriş

Detaylı

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir. DİZGİLER (STRINGS) Dizgiler char tipli karakterlerin gruplanmş haline dizgi(string) denilir. Bazen katar ismide kullanılabilir. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir.

Detaylı

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1 Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1 İçerik Dosya sıkıştırma nedir? Dosya sıkıştırma yöntemleri nelerdir? Run-Length Kodlaması Huffman Kodlaması Kütük Organizasyonu 2 Dosya Sıkıştırma

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

AĞAÇLAR. Doç. Dr. Aybars UĞUR

AĞAÇLAR. Doç. Dr. Aybars UĞUR AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır (Şekil

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1 Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi

Detaylı

AĞAÇ-TREE VERİ YAPISI

AĞAÇ-TREE VERİ YAPISI AĞAÇ-TREE VERİ YAPISI AĞAÇ-TREE Ağaç; verileri birbirine hiyerarşik(sıradüzensel) bir biçimde sanal olarak bağlayan, doğrusal olmayan bir veri yapısıdır. Doğada bulunan biyolojik ağaçlardaki ve aile soyağacındaki

Detaylı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I 1 BLM 111 ALGORİTMA VE PROGRAMLAMA I ÇOK BOYUTLU DİZİLER, YAPILAR [MULTIDIMENSIONAL ARRAYS, STRUCTURES] ÇOK BOYUTLU DİZİLER Çok boyutlu diziler tanımlayabiliriz. İki boyutta, çok boyutlu diziler bellek

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte

Detaylı

Programlama Dilleri 1. Ders 4: Diziler

Programlama Dilleri 1. Ders 4: Diziler Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları

Detaylı

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü Yığın İşlemleri Postfix, Prefix, Infix Yrd.Doç.Dr. M. Ali Akcayol 1 Yığındaki elemanlardan sadece en son eklenene erişim yapılır. Yığına ilk eklenen eleman en son elde edilir. FILO (First-in-Last-out)

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı

Detaylı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,

Detaylı

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır. Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı

Detaylı

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir. BÖLÜM 3 Karakter Dizgileriil i Tanım 3.1.1 Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki öğelerden oluşan bir sonlu dizidir. Hiç bir öğesi olmayan bir karakter dizgisine boş karakter

Detaylı

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan Karmaşıklık Giriş 1 Algoritma Analizi Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi?

Detaylı

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ Algoritma Analizi Çerçevesi Algoritma Analizinde Göz Önünde Bulundurulması Gerekenler Neler? Algoritmanın Doğruluğu (Correctness) Zaman

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların

Detaylı

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1 Görsel Programlama DERS 04 Görsel Programlama - Ders04/ 1 Diziler ve Kolleksiyonlar(Collections) Diziler aynı tipli değişkenleri tutmak için kullanılan veri yapılarıdır. Diziler sabit uzunlukludur. Birkez

Detaylı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

Detaylı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/ Program çalışma hızı; Belirlenen bir problemin çözümü için tasarlanan program kodunun görevini yerine getirmesi için gerekli zaman bilgisini veren bir ifadededir. Bellek Gereksinimi; Programın yürütülmesi

Detaylı

BİL1001 Bilgisayar Bilimlerine Giriş 1

BİL1001 Bilgisayar Bilimlerine Giriş 1 DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar

Detaylı

Arasınav Örnek Soruları Bahar 2018

Arasınav Örnek Soruları Bahar 2018 Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Örnek Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS BAĞLAÇLI LİSTELER LINKED LISTS Liste Günlük yaşamda listeler pek çok yerde kullanılmaktadır: Alışveriş listeleri, adres listeleri, davetli listeleri gibi. Bilgisayar programlarında da listeler yararlı

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi Veri Yapıları Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi Hash Tabloları ve Fonksiyonları Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri (Rastgele Erişim)

Detaylı

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği SAYI VE KODLAMA SİSTEMLERİ Teknoloji Fakültesi/Bilgisayar Mühendisliği Neler Var? Sayısal Kodlar BCD Kodu (Binary Coded Decimal Code) - 8421 Kodu Gray Kodu Artı 3 (Excess 3) Kodu 5 de 2 Kodu Eşitlik (Parity)

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA BLM-112 PROGRAMLAMA DİLLERİ II Ders-8 Dosya İşlemleri-1 Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı