Bağlı Liste. Tablo 2.1: Bir dizinin k nıncı elemanını silen algoritma

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

Download "Bağlı Liste. Tablo 2.1: Bir dizinin k nıncı elemanını silen algoritma"

Transkript

1 2 Bağlı Liste Bağlı liste, içindeki elemanların doğrusal olarak düzenlendiği veri yapısıdır. Bu yönüyle dizilere benzeyen bağlı liste, içindeki elemanlara ulaşma yoluyla diziden ayrılmaktadır. Bir dizinin içindeki elemanlara dizinin indeksleri yoluyla ulaşıldığı halde, bir bağlı listenin içindeki elemanlara o elemanlara işaret eden işaretçiler yoluyla ulaşılır. Bağlı listelerde eleman ekleme ve silme işlemleri dizilere göre daha hızlı yapılabilmektedir. Diziye bir eleman eklemek veya diziden bir eleman silmek için dizinin elemanlarını kaydırmak gerekirken, bağlı listeler, veriyi dinamik olarak sakladıklarından dolayı sadece birkaç bağlantının yerini değiştirmek bu işlemler için yeterlidir. Tablo 2.1: Bir dizinin k nıncı elemanını silen algoritma void diziden_sil ( int dizi, int k, int N){ int i; for (i = k; i < N 1; i++){ dizi [ i ] = dizi [ i + 1]; void dizidensil(int[] dizi, int k){ int i; for (i = k; i < dizi.length 1; i++){ dizi [ i ] = dizi[ i + 1]; Örneğin Tablo 2.1 deki kod parçası N elemanlı bir dizideki k nıncı elemanı diziden siler. Ortaya çıkan boşluğu gidermek için k nıncı elemandan sonraki her eleman bir önceki pozisyona kaydırılacaktır (Satır 4). Bu da N - k elemanın pozisyon değiştirmesi anlamına gelir. Oysa bu bölümde göreceğimiz gibi bağlı listeden bir eleman silindiğinde yapılması gereken tek şey, bir işaretçinin gösterdiği yerin değiştirilmesidir. O halde dizi veri yapısından belirli bir elemanı silmek N - k işlem gerektirirken bağlı liste yapısından belirli bir elemanı silmek 2 işlem gerektirmektedir. N - k büyük olduğunda aradaki fark çalışma süresine yansıyacaktır.

2 20 Bölüm 2. Bağlı Liste Tablo 2.2: Bir dizinin k nıncı yerine yeni eleman ekleyen algoritma 1 void diziye_ekle ( int dizi, int k, int yeni, int N){ 2 int i; 3 for (i = N 2; i >= k; i ){ 4 dizi [ i + 1] = dizi [ i ]; 5 6 dizi [k] = yeni; 7 1 void diziyeekle(int[] dizi, int k, int yeni){ 2 int i; 3 for (i = dizi.length 2; i >= k; i ){ 4 dizi[i + 1] = dizi[i ]; 5 6 dizi[k] = yeni; 7 Tablo 2.3: Sıralı bir dizide ikili arama yöntemiyle k sayısını arayan algoritma void dizide_ara( int dizi, int k, int N){ int sol = 0, sag = N 1, orta; orta = (sol + sag) / 2; while (sol <= sag){ if (k < dizi [ orta ]) sag = orta 1; else if (k > dizi [orta ]) sol = orta + 1; else return orta ; orta = (sol + sag) / 2; return 1; void dizideara(int[] dizi, int k){ int sol = 0, sag = dizi.length 1, orta; orta = (sol + sag) / 2; while (sol <= sag){ if (k < dizi[orta ]) sag = orta 1; else if (k > dizi[orta ]) sol = orta + 1; else return orta; orta = (sol + sag) / 2; return 1; Benzer bir durum diziye yeni bir eleman eklerken de geçerlidir. Örneğin Tablo 2.2 deki kod parçası N elemanlı bir dizinin k nıncı yerine yeni bir eleman ekler. Yeni elemanı yerleştirmek için gereken boşluğu elde etmek için k nıncı elemandan itibaren her eleman bir sonraki yere kaydırılacaktır (Satır 4).Bu da N - k elemanın yer değiştirmesi anlamına gelir. Oysa bu bölümde göreceğimiz gibi bağlı listeye bir eleman eklendiğinde yapılması gereken tek şey bir işaretçinin gösterdiği yerin değiştirilmesidir. O halde dizi veri yapısına yeni bir eleman eklemek N - k işlem gerektirirken bağlı liste yapısına yeni bir eleman eklemek 2işlemgerektirmektedir. Diğer taraftan sıralı bir dizide verilen bir elemanı aramak, ikili arama yöntemi ile O(log N) zamanalırken(tablo2.3),bağlılistelerdeaynıişlemancak bütün elemanlar gezilerek yapılabilir O(N).

3 2.1. Bağlı Liste Tanımı Bağlı Liste Tanımı Bir bağlı listenin her elemanı bir veri yapısı ile tanımlanır. Listedeki her elemanın bir içeriği ve sonraki elemanı işaret eden bir işaretçisi vardır. Şekil 2.1 örnek bir bağlı liste elemanını göstermektedir. Bu eleman 9 değerini ve bir sonraki elemanı gösteren bir işaretçiyi içermektedir. İçerik İleri 9 Şekil 2.1: Tam sayı içeren eleman veri yapısı Tablo 2.4: Tam sayı içeren eleman veri yapısı tanımı struct eleman{ int icerik ; struct eleman ileri ; ; typedef struct eleman Eleman; typedef Eleman Elemanptr; Elemanptr yeni_eleman(int icerik ){ Elemanptr eleman; eleman = malloc(sizeof(eleman)); eleman >icerik = icerik; eleman >ileri = NULL; return eleman; public class Eleman{ int icerik ; Eleman ileri ; public Eleman(int icerik){ this.icerik = icerik ; ileri = null; Tablo 2.4 te veri olarak tamsayı içeren bir elemanın tanımı verilmektedir. Listenin her bir elemanı struct eleman adlı bir yapı ile gösterilmektedir. icerik alanı listedeki elemanın içindeki veriyi, ileri alanı ise bağlı listede bir sonraki elemanı gösteren işaretçidir. Örnek bir bağlı liste ve onun eşleniği dizi Şekil 2.2 de görülmektedir. Şekildeki liste başı işareti listenin ilk elemanını göstermekte, dizilere ulaşmak için nasıl dizilerin başlangıç adresleri kullanılıyorsa, bağlı listeler için de bu liste başı işaretleri kullanılmaktadır. Liste başı işaretçisi NULL ise, bağlı liste boş olmakta ve hiçbir eleman içermemektedir. Bağlı listenin son elemanını gösteren liste sonu işaretçisi,

4 22 Bölüm 2. Bağlı Liste BAĞLI LİSTE Liste Başı DİZİ Liste Sonu Şekil 2.2: Bir bağlı liste ve dizi yapısı Tablo 2.5: Tam sayılar içeren bağlı liste tanımı struct liste { Elemanptr bas; Elemanptr son; ; typedef struct liste Liste ; typedef Liste Listeptr ; Listeptr yeni_liste (){ Listeptr liste ; liste = malloc( sizeof ( Liste )); liste >bas = NULL; liste >son = NULL; return liste ; public class Liste{ Eleman bas; Eleman son; public Liste(){ bas = null; son = null; dizinin sonuna bir eleman eklerken kullanılmaktadır. Bağlı listeninsonelemanının sonraki elemanı gösteren işaretçisi NULL, yani hiçbir şeyi göstermemektedir. Tablo 2.5 te tamsayılar içeren bir bağlı listenin tanımı verilmektedir. Listenin kendisi bir ilk eleman ve son elemandan oluşan bir struct liste dir. bas alanı listenin ilk elemanını, son alanı ise listenin son elemanını göstermektedir. typedef ile verilen tanımlar ise uzun değişken tanımlarını kısaltabilmek amacıyla kullanılmaktadır. Bir bağlı liste ilk üretildiği zaman bas ve son değişkenleri NULL değerine eşitlenir.

5 2.2. Temel Bağlı Liste İşlemleri Temel Bağlı Liste İşlemleri Listeye Eleman Ekleme Bağlı listeye eleman eklemek üç şekilde olabilir: Listenin başına, sonuna veya ortasına ekleme. Listenin Başına Eleman Ekleme Tablo 2.6 da verilen algoritma, l listesinin başına yeni elemanı ekler. Listenin başına eleman eklendiğinde bas değişkeni yeni eleman olur (Satır 5). Ayrıca listenin eski ilk elemanını yeni elemanın arkasına yerleştirmek gereklidir (Satır 4). Liste boş ise listenin son elemanı da yeni eleman yapılır (Satır 2-3). Tablo 2.6: Bağlı listenin başına eleman ekleyen algoritma 1 void liste_basina_ekle ( Listeptr l, Elemanptr yeni){ 2 if (l >son == NULL) 3 l >son = yeni; 4 yeni >ileri = l >bas; 5 l >bas = yeni; 6 1 void listebasinaekle(eleman yeni){ 2 if (son == null) 3 son = yeni; 4 yeni. ileri = bas; 5 bas = yeni; 6 Şekil 2.3 te üç elemandan oluşan bir bağlı listenin başına içeriği 8 olan bir eleman eklenmiştir. bas değişkeni artık içeriği 9 olan elemanı değil yeni eklediğimiz elemanı göstermektedir. Ayrıca yeni eklediğimiz elemanın ileri işaretçisi 9 u göstermektedir. Listenin Sonuna Eleman Ekleme Tablo 2.7 de verilen algoritma, l listesinin sonuna yeni elemanı ekler. Listenin sonuna ekleme yapmak için yeni elemanı listenin son elemanının arkasına eklemek (Satır 4) ve listenin son elemanını gösteren işaretçinin de yeni elemanı göstermesini sağlamak yeterlidir (Satır 5). Eğer liste boşsa, listenin ilk elemanını gösteren işaretçi de yeni elemanı gösterecektir (Satır 2-3). Şekil 2.4 te üç elemandan oluşan bir bağlı listenin sonuna içeriği 8 olan bir eleman eklenmiştir. son değişkeni artık içeriği 5 olan elemanı değil yeni eklediğimiz

6 24 Bölüm 2. Bağlı Liste Liste Başı Yeni 8 Liste Sonu Şekil 2.3: Bağlı listenin başına ekleme Tablo 2.7: Bağlı listenin sonuna eleman ekleyen algoritma 1 void listeye_ekle ( Listeptr l, Elemanptr yeni){ 2 if (l >bas == NULL) 3 l >bas = yeni; 4 else 5 l >son >ileri = yeni; 6 l >son = yeni; 7 1 void listeyeekle(eleman yeni){ 2 if (bas == null) 3 bas = yeni; 4 else 5 son. ileri = yeni; 6 son = yeni; 7 elemanı göstermektedir. Ayrıca içeriği 5 olan elemanın ileri işaretçisi artık NULL ı değil yeni eklediğimiz elemanı göstermektedir. Listenin Ortasına Eleman Ekleme Listenin ortasına bir eleman eklemek için yeni elemandan önce gelen elemanın adresi bilinmelidir. Yeni elemandan önce gelen elemanın ileri işaretçisi yeni eklenen elemanı gösterecektir. Tablo 2.8 deki algoritmada yeni eklenen elemanı, once yeni elemandan önce

7 2.2. Temel Bağlı Liste İşlemleri 25 Liste Başı Yeni 8 Liste Sonu Şekil 2.4: Bağlı listenin sonuna ekleme Tablo 2.8: Bağlı listenin ortasına eleman ekleyen algoritma 1 void liste_orta_ekle (Elemanptr yeni, Elemanptr once){ 2 yeni >ileri = once >ileri; 3 once >ileri = yeni; 4 1 void listeortaekle(eleman yeni, Eleman once){ 2 yeni. ileri = once.ileri ; 3 once. ileri = yeni; 4 gelecek elemanı göstermektedir. Yeni elemanın ileri işaretçisi once elemanından sonra gelen elemanı gösterecek şekilde (Satır 2), önce gelen elemanınileri işaretçisi ise yeni gelen elemanı gösterecek şekilde değiştirilmektedir (Satır 3). Şekil 2.5 te içeriği 8 olan bir eleman içeriği 16 olan elemanın arkasına eklenmektedir. Değiştirilen işaretçiler: 16 nın ileri işaretçisi artık 5 i değil yeni eklenen 8 i göstermektedir. Yeni eklenen 8 in ileri işaretçisi 5 i göstermektedir.

8 26 Bölüm 2. Bağlı Liste Liste Başı Önce Yeni 8 Liste Sonu Şekil 2.5: Bağlı listenin ortasına ekleme Bağlı Liste İşlemleri Liste başına ekleme: O(1) Liste sonuna ekleme: O(1) Liste ortasına ekleme: O(1) Listede Eleman Arama Bağlı listelerde yaptığımız bir diğer işlem, elimizdeki bir değerinlisteniniçinde olup olmadığının araştırılmasıdır. Arama yaparken önce listenin ilk elemanından başlanır ve bir elemandan diğerine işaretçiler yardımıyla ilerleyerek her elemanın içeriğiyle aradığımız değer karşılaştırılır. Değerler aynıysa aranan eleman bulunmuş demektir. Tablo 2.9 daki algoritma bu arama işlemini yapmaktadır. Fonksiyon, aranan değer listede varsa değeri içeren elemanı, yoksa NULL değerini döndürür Listenin i ninci Elemanını Getirme Verilen bir bağlı listedeki i ninci elemanı döndüren algoritma Tablo 2.10 da verilmiştir. Bağlı listelerin dezavantajını burada görüyoruz. Dizi veri yapısında i ninci elemana erişmek için sadece o elemanın sıra numarasını belirtmek yeterliyken, bağlı liste veri yapısında listenin başından o sıra numarasına gelene kadar listeyi gezmek gerekir.

9 2.2. Temel Bağlı Liste İşlemleri 27 Tablo 2.9: Bağlı listede verilen bir değeri arama 1 Elemanptr liste_ara ( Listeptr l, int deger){ 2 Elemanptr tmp; 3 tmp = l >bas; 4 while (tmp){ 5 if (tmp >icerik == deger) 6 return tmp; 7 tmp = tmp >ileri; 8 9 return NULL; 10 Eleman listeara(int deger){ Eleman tmp; tmp = bas; while (tmp!= null){ if (tmp.icerik == deger) return tmp; tmp = tmp.ileri; return null; Tablo 2.10: Bağlı listenin i ninci elemanını döndürme 1 Elemanptr eleman_i(listeptr l, int i){ 2 Elemanptr tmp = l >bas; 3 int j = 0; 4 while (tmp!= NULL && j < i){ 5 j++; 6 tmp = tmp >ileri; 7 8 return tmp; 9 Eleman elemani(int i){ Eleman tmp = bas; int j=0; while (tmp!= null && j < i){ j++; tmp = tmp.ileri; return tmp; Liste gezilirken her geçilen eleman için sıra numarası bir artırılır (Satır 5-6). Gezinti iki şekilde sonra erebilir: (i) listede i elemandan daha az eleman varsa (Satır 4 teki ilk koşul yanlış olur) (ii) ya da i ninci sayı bulunmuşsa (i= j olduğunda Satır 3 teki ikinci koşul yanlış olur). Birinci durumda fonksiyon i ninci eleman olmadığından fonksiyon NULL döndürür. İkinci durumda da fonksiyon i ninci elemanı, yani tmp i döndürür. Listede arama: O(N) Bağlı Liste İşlemleri i ninci elemanı getirme: O(N) Listeden Eleman Silme Bağlı listeye eleman eklemede olduğu gibi bağlı listeden eleman silerken de üç değişik durum söz konusu olabilir. Silinecek eleman listenin ilk elemanı, son elemanı veya listenin ortasındaki herhangi bir eleman olabilir.

10 28 Bölüm 2. Bağlı Liste Listenin İlk Elemanını Silme Tablo 2.11 de verilen algoritma, l listesinin ilk elemanını siler. Listenin ilk elemanı silindiğinde bas değişkeni listenin başından sonraki eleman (ikinci eleman) olur (Satır 2). İlk eleman silindiğinde liste boşalırsa (Satır 3), listenin son elemanı da NULL yapılır (Satır 4). Tablo 2.11: Bağlı listenin ilk elemanını silme 1 void liste_basi_sil ( Listeptr l){ 2 l >bas = l >bas >ileri; 3 if (l >bas == NULL) 4 l >son = NULL; 5 void listebasisil (){ bas = bas. ileri ; if (bas == null) son = null; Liste Başı Liste Sonu Şekil 2.6: Bağlı listenin ilk elemanını silme Şekil 2.6 listenin ilk elemanını silme işlemini göstermektedir. Listeninbaşı artık 9 u değil 9 un ileri işaretçisinin gösterdiği 16 yı göstermektedir. Listenin Son Elemanını Silme Bağlı listede son elemanı sildiğimizde, listenin yeni son elemanının belirlenmesi gerekir. Elimizdeki bağlantılar ile sadece ileriye doğru gittiğimizden, listenin sondan bir önceki elemanına direkt erişimimiz yoktur. Bu sebepten, önce listenin sondan

11 2.2. Temel Bağlı Liste İşlemleri 29 bir önceki elemanını bulmamız ve daha sonra bağlantıları ona göre düzeltmemiz gerekir. Tablo 2.12: Bağlı listenin son elemanını silme 1 void liste_sonu_sil ( Listeptr l){ 2 Elemanptr tmp, once; 3 tmp = l >bas; 4 once = NULL; 5 while (tmp!= l >son){ 6 once = tmp; 7 tmp = tmp >ileri; 8 9 if (once == NULL) 10 l >bas = NULL; 11 else 12 once >ileri = NULL; 13 l >son = once; 14 void listesonusil(){ Eleman tmp, once; tmp = bas; once = null; while (tmp!= son){ once = tmp; tmp = tmp.ileri; if (once == null) bas = null; else once. ileri = null; son = once; Liste Başı Önce Liste Sonu Şekil 2.7: Bağlı listenin son elemanını silme Tablo 2.12 deki fonksiyon, verilen bir listenin son elemanını silmektedir. Önce, listenin sondan bir önceki elemanı bulunur (Satır 3-8). Sırayla listede ilerlerken hem listenin şu andaki elemanını gösteren bir işaretçi (tmp) hem de o elemanın bir önündeki elemanı gösteren bir işaretçi (elemanonce) hafızada tutulur.listenin sonuna gelindiğinde elemanonce listenin sondan bir önceki elemanını gösterecektir.

12 30 Bölüm 2. Bağlı Liste Eğer listede tek bir eleman varsa (Satır 9), son eleman silindiğinde tüm elemanlar silinmiş olacak ve listenin başını gösteren işaretçi NULL a eşitlenecektir (Satır 10). Listede birden fazla eleman varsa (Satır 11), listenin son elemanı elemanonce olacak (Satır 13) ve listenin yeni son elemanının ileri işaretçisi NULL u gösterecektir (Satır 12). Şekil 2.7 listenin son elemanını silme işlemini göstermektedir. Listenin sonu artık 7 yi değil 7 den önce gelen 5 i göstermektedir. Listenin Ortasından Eleman Silme Bağlı listeden silinecek elemanın içeriği ya da o elemanı gösteren bir işaretçi verilirse silme işlemi kolayca yapılabilir. Elemanın içeriği verilirse,elemanıgösteren işaretçi Bölüm de verilen arama fonksiyonu ile bulunabilir. Bağlılistede adresi verilenelemanı sildiğimizde, o elemandan önce gelen elemanın ileri işaretçisinin sildiğimiz elemandan sonra gelen elemanı göstermesi gerekir. Ama biz elimizdeki bağlantılar ile sadece listede ileri doğru hareket edebiliyoruz. Bu sebepten, önce sileceğimiz elemandan önce gelen elemanı bulmamız ve daha sonra bağlantıları ona göre düzeltmemiz gerekiyor. Tablo 2.13: Bağlı listenin ortasından bir elemanı silme 1 void listeden_sil ( Listeptr l, Elemanptr s){ 2 Elemanptr tmp, elemanonce; 3 tmp = l >bas; 4 elemanonce = NULL; 5 while (tmp!= s){ 6 elemanonce = tmp; 7 tmp = tmp >ileri; 8 9 elemanonce >ileri = s >ileri; 10 void listedensil(eleman s){ Eleman tmp, elemanonce; tmp = bas; elemanonce = null; while (tmp!= s){ elemanonce = tmp; tmp = tmp.ileri; elemanonce. ileri = s. ileri ; Tablo 2.13 te verilen fonksiyon istenen işlemi yerine getirmektedir. Önce listede silinecek elemandan önce gelen eleman bulunur (Satır 3-8). Bunun için listede sırayla ilerlerken hem listenin şu andaki elemanını gösteren bir işaretçi (tmp) hem de o elemanın bir önündeki elemanı gösteren bir işaretçi (elemanonce) hafızada tutulur. tmp silinecek elemanı gösterdiğinde elemanonce de silinecek elemandan bir önceki elemanı gösterecektir. Eğer silinecek eleman listede yoksa fonksiyondan çıkılır. Silinecek eleman bulunduğunda elemanonce nin ileri işaretçisi silinecek elemandan bir sonraki elemanı gösterecek şekilde değiştirilir (Satır 9). Şekil 2.8 içeriği 5 olan elemanın silinme işlemini göstermektedir. 16 nın ileri işaretçisi artık 5 i değil silinen 5 ten sonra gelen 7 yi göstermektedir.

13 2.2. Temel Bağlı Liste İşlemleri 31 Liste Başı Önce Liste Sonu Şekil 2.8: Bağlı listenin ortasından silme Bağlı Liste İşlemleri Listenin ilk elemanını silme: O(1) Listenin son elemanını silme: O(N) Listenin ortasından silme: O(N) Listedeki Eleman Sayısını Bulma Bağlı listede sık sık karşılaştığımız problemlerden birisi listedetoplamkaçeleman olduğunu bulmaktır. Listedeki eleman sayısını bulan fonksiyon Tablo 2.14 te verilmektedir. Fonksiyon, listeyi parametre olarak almakta ve listedeki eleman sayısını döndürmektedir. Listenin eleman sayısını bulmak için yapmamız gereken, listenin başından (Satır 4) başlayıp işaretçiler yardımıyla son elemana kadar (Satır 5) ilerlemektir. İlerleme sırasında geçilen her eleman için sayaç bir artırılır (Satır 7). Sayacın son değeri listedeki eleman sayısını verir (Satır 9).

14 32 Bölüm 2. Bağlı Liste Tablo 2.14: Bağlı listedeki eleman sayısını bulma 1 int eleman_sayisi( Listeptr l ){ 2 int sayac = 0; 3 Elemanptr tmp; 4 tmp = l >bas; 5 while (tmp){ 6 tmp = tmp >ileri; 7 sayac++; 8 9 return sayac; 10 int elemansayisi(){ int sayac = 0; Eleman tmp; tmp = bas; while (tmp!= null){ tmp = tmp.ileri; sayac++; return sayac; 2.3 İki Listeyi Birleştirme Karşımıza sık sık çıkan problemlerden biri de verilen iki listenin birleştirilmesidir. Yeni listenin elemanları ya eski iki listenin elemanlarından oluşur ya da birleştirilen listelerdeki elemanlar daha sonra kullanılacağı için o listelerdeki elemanların bir kopyası çıkarılıp yeni birleştirilmiş liste üretilir. Biz bu bölümde birinci durumu inceleyeceğiz. Bu durumda iki listedeki elemanların yeni kopyalarının üretilmesine gerek yoktur. Birleştirme, birinci listenin arkasına ikinci listenin ilk elemanının eklenmesi ile kolayca gerçekleştirilir. Tablo 2.15: İki bağlı listeyi birleştirme 1 Listeptr birlestir ( Listeptr l1, Listeptr l2){ 2 Listeptr tmp; 3 if (l1 >bas == NULL) 4 return l2 ; 5 if (l2 >bas == NULL) 6 return l1 ; 7 tmp = (Listeptr) malloc ( sizeof ( Liste )); 8 tmp >bas = l1 >bas; 9 tmp >son = l2 >son; 10 l1 >son >ileri = l2 >bas; 11 return tmp; 12 Liste birlestir ( Liste l1, Liste l2){ Liste tmp; if (l1.bas == null) return l2; if (l2.bas == null) return l1; tmp = new Liste(); tmp.bas = l1.bas; tmp.son = l2.son; l1.son. ileri = l2.bas; return tmp; Tablo 2.15 te verilen algoritma, iki listeyi birleştirmekte ve sonuç listeyi döndürmektedir. Yeni liste fonksiyonun içinde yaratılacağından onun için hafızada yer açmak gerekmektedir. Fonksiyon, önce iki listenin boş olup olmadığını kontrol etmekte (Satır 3, 5), eğer listelerden biri boşsa diğer listeyi döndürmektedir (Satır 4, 6). Eğer iki liste de en az bir eleman içeriyorsa, sonuç liste yaratılmakta (Satır 7), sonuç listenin

15 2.4. Çift Bağlı Liste Tanımı Liste Başı Liste Başı 1. Liste Sonu 3. Liste Sonu 2. Liste Başı Liste Sonu Şekil 2.9: Bağlı listeleri birleştirme ilk elemanı birinci listenin ilk elemanını göstermekte (Satır 8), son elemanı ikinci listenin son elemanını göstermekte (Satır 9) ve birinci listenin son elemanının sonraki elemanı gösteren işaretçisi ise NULL değerinden ikinci listeninilkelemanını gösterecek şekilde değiştirilmektedir (Satır 10). Şekil 2.9 da iki listenin birleştirilmesi gösterilmiştir. Birinci liste 9 ve 16 dan oluşmakta, ikinci liste ise8 ve4 ten oluşmaktadır. Sonuçlistenin ilk elemanı birinci listenin ilk elemanı, yani 9, son elemanı ise ikinci listenin son elemanı, yani 4 olmaktadır. 2.4 Çift Bağlı Liste Tanımı Bağlı liste veri yapısı, dizi veri yapısına göre ekleme ve silme işlemlerinde sabit zaman harcama gibi önemli üstünlükler taşımasına rağmen önemli bir dezavantajı da içerisinde barındırmaktadır: bağlı listede bulunduğumuz yerden sadece ileri doğru gidebiliriz. Bu dezavantaj, bağlı listedeki şu temel işlemlerde kendini göstermektedir: Bağlı listenin ortasına eleman eklemek (Tablo 2.8) ancak ve ancak önüne ekleyeceğimiz elemandan önceki elemanın işaretçisi elimizdeyken mümkün olabilir. Önceki elemanı gösteren işaretçi elimizde yoksa, listeninbaşından başlayıp ekleyeceğimiz yere kadar listede ilerlememiz gerekir.

16 34 Bölüm 2. Bağlı Liste Bağlı listenin son elemanını sildiğimizde (Tablo 2.12), bağlı listenin yeni son elemanını belirlemek için listenin başından başlayıp sondan bir önceki elemana kadar listede ilerlememiz gerekir. Bağlı listenin ortasından eleman silmek (Tablo 2.13) ancak ve ancak sileceğimiz elemandan önceki elemanın işaretçisi elimizdeyken mümkün olabilir. Önceki elemanı gösteren işaretçi elimizde yoksa, listenin başından başlayıp sileceğimiz elemana kadar listede ilerlememiz gerekir. Bütün bu dezavantajlar, her elemana bir önceki elemanını gösteren yeni bir işaretçi ekleyerek ortadan kaldırılabilir. Her elemanının bir değil iki işaretçisi olan bu bağlı liste yapısı, çift bağlı liste olarak adlandırılır. Çift bağlı listede her elemanın bir sonraki elemanı işaret eden ileri işaretçisinin yanında bir önceki elemanı işaret eden geri işaretçisi de vardır. Çift bağlı listenin ortasına eleman eklemek için (Tablo 2.20) önüne ekleyeceğimiz elemanı gösteren işaretçi yeterlidir. Ekleyeceğimiz elemanınönündeki elemanı geri işaretçisini kullanarak bulabiliriz. Çift bağlı listenin son elemanını sildiğimizde (Tablo 2.22), çift bağlı listenin yeni son elemanı önceki son elemanın geri işaretçisi ile gösterdiği eleman olacaktır. Çift bağlı listenin ortasından eleman silmek için (Tablo 2.23) sadece sileceğimiz elemanın elimizde olması yeterlidir. Sileceğimiz elemanın önündeki elemana yine geri işaretçisini kullanarak ulaşabiliriz. Örnek bir çift bağlıliste elemanı Şekil 2.10 dagörülmektedir. Buna göre bu eleman 9 değerini, bir sonraki elemanı gösteren ileri işaretçisini ve bir önceki elemanı gösteren geri işaretçisini içermektedir. Geri İçerik İleri 9 Şekil 2.10: Tam sayı içeren eleman veri yapısı (Çift bağlı liste için) Tablo 2.16 da tamsayı içeren bir çift bağlı liste elemanının tanımı verilmektedir. Listenin her bir elemanı struct eleman adlı bir yapı ile gösterilmektedir. icerik alanı listedeki elemanın içindeki veriyi, ileri alanı çift bağlı listede bir sonraki

17 2.4. Çift Bağlı Liste Tanımı 35 Tablo 2.16: Tam sayı içeren bir eleman tanımı (Çift bağlı liste için) struct cifteleman { int icerik ; struct cifteleman ileri ; struct cifteleman geri ; ; typedef struct cifteleman Cifteleman; typedef Cifteleman Ciftelemanptr ; Ciftelemanptr yeni_cifteleman( int icerik ){ Ciftelemanptr eleman; eleman = malloc(sizeof(cifteleman )); eleman >icerik = icerik; eleman >ileri = NULL; eleman >geri = NULL; return eleman; public class CiftEleman{ int icerik ; CiftEleman ileri ; CiftEleman geri; public CiftEleman(int icerik){ this.icerik = icerik ; ileri = null; geri = null; ÇİFT BAĞLI LİSTE Liste Başı DİZİ Liste Sonu Şekil 2.11: Bir çift bağlı liste ve dizi yapısı elemanı gösteren işaretçiyi, geri ise listede bir önceki elemanı gösteren işaretçiyi göstermektedir. Örnek bir çift bağlı liste ve onun eşleniği dizi Şekil 2.11 de görülmektedir. Buna göre örnek bağlı listenin ilk elemanı 9 değerini, bir sonraki eleman olan 16 yı gösteren bir işaretçiyi ve listenin ilk elemanının öncesi olmadığı için de geri işaretçisi NULL u içermektedir. Çift bağlı listede de son elemanı gösteren liste sonu işaretçisi, dizinin sonuna bir eleman eklerken kullanılmaktadır. Çift bağlı listenin son elemanının sonraki elemanı gösteren işaretçisi NULL u göstermektedir. Ayrıca liste başı ile liste sonu işaretleri normal bağlı liste ile aynıdır.

18 36 Bölüm 2. Bağlı Liste Tablo 2.17: Tam sayılar içeren çift bağlı liste tanımı struct ciftliste { Ciftelemanptr bas; Ciftelemanptr son; ; typedef struct ciftliste Ciftliste ; typedef Ciftliste Ciftlisteptr ; Ciftlisteptr yeni_ciftliste (){ Ciftlisteptr liste ; liste = malloc( sizeof ( Ciftliste )); liste >bas = NULL; liste >son = NULL; public class CiftListe{ CiftEleman bas; CiftEleman son; public CiftListe(){ bas = null; son = null; Tablo 2.17 de tamsayılar içeren bir çift bağlı listenin tanımı verilmektedir. Listenin kendisi bir ilk eleman ve son elemandan oluşan bir struct liste dir. bas alanı listenin ilk elemanını, son alanı ise listenin son elemanını göstermektedir. Bir çift bağlı liste ilk üretildiği zaman bas ve son değişkenleri NULL değerine eşitlenir. 2.5 Temel Çift Bağlı Liste İşlemleri Listeye Eleman Ekleme Çift bağlı listeye eleman eklemek üç türlü olabilir. Listenin başına, sonuna veya ortasına ekleme. Listenin Başına Eleman Ekleme Tablo 2.18 de verilen algoritma, l çift bağlı listesinin başına yeni elemanı ekler. Listenin başına eleman eklendiğinde bas değişkeni yeni eleman olur (Satır 5). Ayrıca listenin eski ilk elemanını yeni elemanın arkasına yerleştirmek gereklidir (Satır 4). Son olarak liste boşsa, listenin son elemanını gösteren işaretçi de yeni elemanı gösterecektir (Satır 2-3). Şekil 2.12 de üç elemandan oluşan bir çift bağlı listenin başına içeriği 8 olan bir eleman eklenmiştir. Yapılan değişiklikler şu şekilde özetlenebilir: bas değişkeni artık içeriği 9 olan elemanı değil yeni eklediğimiz elemanı göstermektedir. İçeriği 9 olan elemanın geri işaretçisi artık NULL u değil yeni eklediğimiz elemanı göstermektedir. Yeni eklediğimiz elemanın ileri işaretçisi 9 u göstermektedir.

19 2.5. Temel Çift Bağlı Liste İşlemleri 37 Tablo 2.18: Çift bağlı listenin başına eleman ekleyen algoritma 1 void liste_basina_ekle ( Ciftlisteptr l, Ciftelemanptr yeni){ 2 if (l >son == NULL) 3 l >son = yeni; 4 else 5 l >bas >geri = yeni; 6 yeni >ileri = l >bas; 7 l >bas = yeni; 8 1 void listebasinaekle(cifteleman yeni){ 2 if (son == null) 3 son = yeni; 4 else 5 bas.geri = yeni; 6 yeni. ileri = bas; 7 bas = yeni; 8 Liste Başı Yeni 8 Liste Sonu Şekil 2.12: Çift bağlı listenin başına eleman ekleme Listenin Sonuna Eleman Ekleme Listenin sonuna ekleme yapmak için yeni elemanı listenin son elemanınınarkasına eklemek yeterli olacaktır. Tablo 2.19 da verilen algoritma, l listesinin sonuna yeni elemanı ekler. Eğer liste boşsa listenin ilk elemanı yeni eleman yapılır (Satır 2-3). Liste doluysa, yeni

20 38 Bölüm 2. Bağlı Liste Tablo 2.19: Çift bağlı listenin sonuna eleman ekleyen algoritma 1 void listeye_ekle ( Ciftlisteptr l, Ciftelemanptr yeni){ 2 if (l >bas == NULL) 3 l >bas = yeni; 4 else 5 l >son >ileri = yeni; 6 yeni >geri = l >son; 7 l >son = yeni; 8 1 void listeyeekle(cifteleman yeni){ 2 if (bas == null) 3 bas = yeni; 4 else 5 son. ileri = yeni; 6 yeni.geri = son; 7 son = yeni; 8 Liste Başı Yeni 8 Liste Sonu Şekil 2.13: Çift bağlı listenin sonuna eleman ekleme elemanın geri işaretçisi listenin son elemanını (Satır 4), listenin son elemanının ileri işaretçisi de yeni elemanı (Satır 5) gösterecek şekilde işaretçiler değiştirilir. Şekil 2.13 te üç elemandan oluşan bir çift bağlı listenin sonuna içeriği 8 olan bir eleman eklenmiştir. Yapılan değişiklikler şu şekilde özetlenebilir: son değişkeni artık içeriği 5 olan elemanı değil yeni eklediğimiz elemanı gös-

21 2.5. Temel Çift Bağlı Liste İşlemleri 39 Tablo 2.20: Çift bağlı listenin ortasına eleman ekleyen algoritma 1 void liste_orta_ekle (Ciftelemanptr yeni, Ciftelemanptr once){ 2 yeni >ileri = once >ileri; 3 yeni >geri = once; 4 once >ileri >geri = yeni; 5 once >ileri = yeni; 6 1 void listeortaekle(cifteleman yeni, CiftEleman once){ 2 yeni. ileri = once.ileri ; 3 yeni.geri = once; 4 once. ileri.geri = yeni; 5 once. ileri = yeni; 6 termektedir. İçeriği 5 olan elemanın ileri işaretçisi artık NULL u değil yeni eklediğimiz elemanı göstermektedir. Yeni eklediğimiz elemanın geri işaretçisi 5 i göstermektedir. Listenin Ortasına Eleman Ekleme Listenin ortasına bir eleman eklemek için yeni elemandan önce gelen elemanın adresi bilinmelidir. Yeni elemandan önce gelen elemanın ileri işaretçisi yeni eklenen elemanı, yeni elemanın geri işaretçisi ise yeni elemandan önce gelen elemanı gösterecektir. Tablo 2.20 deki algoritmada yeni yeni eklenen elemanı, once yeni elemandan önce gelecek elemanı göstermektedir. 4 işaretçi değiştirilecektir. Eklenen elemanın ileri işaretçisi once elemanından sonra gelen elemanı gösterecektir (Satır 8). Eklenen elemanın geri işaretçisi once elemanını gösterecektir (Satır 9). once elemanından sonra gelen elemanın geri işaretçisi yeni eklenen elemanı gösterecektir (Satır 10). once elemanının ileri işaretçisi yeni eklenen elemanı gösterecektir (Satır 11). Şekil 2.14 te içeriği 8 olan bir eleman, içeriği 16 olan elemanın arkasına eklenmektedir. Değiştirilen işaretçiler: 8 in ileri işaretçisi 5 i gösterecektir. 8 in geri işaretçisi 16 yı gösterecektir.

22 40 Bölüm 2. Bağlı Liste Liste Başı Yeni 8 Liste Sonu Şekil 2.14: Çift bağlı listenin ortasına eleman ekleme 5 in geri işaretçisi 8 i gösterecektir. 16 nın ileri işaretçisi 8 i gösterecektir. Çift Bağlı Liste İşlemleri Listenin başına ekleme: O(1) Listenin sonuna ekleme: O(1) Listenin ortasına ekleme: O(1) Listeden Eleman Silme Bağlı listeye eleman eklemede olduğu gibi bağlı listeden eleman silerken de üç değişik durum söz konusu olabilir. Silinecek eleman listenin ilk elemanı, son elemanı veya listenin ortasındaki herhangi bir eleman olabilir. Listenin İlk Elemanını Silme Tablo 2.21 de verilen algoritma l çift bağlı listesinin ilk elemanını siler. Listenin ilk elemanı silindiğinde bas değişkeni listenin başından sonraki eleman (ikinci eleman) olur (Satır 2). Yeni liste başının geri işaretçisi ise NULL a değiştirilir (Satır 6). İlk

23 2.5. Temel Çift Bağlı Liste İşlemleri 41 eleman silindiğinde liste boşalırsa (Satır 3), listenin son elemanıdanullyapılır (Satır 4). Tablo 2.21: Çift bağlı listenin ilk elemanını silme 1 void liste_basi_sil ( Ciftlisteptr l){ 2 l >bas = l >bas >ileri; 3 if (l >bas == NULL) 4 l >son = NULL; 5 else 6 l >bas >geri = NULL; 7 void listebasisil (){ bas = bas. ileri ; if (bas == null) son = null; else bas. geri = null; Liste Başı Liste Sonu Şekil 2.15: Bağlı listenin ilk elemanını silme Şekil 2.15 örnek bir çift bağlı listenin ilk elemanının silinme işlemini göstermektedir. Listenin başı artık 9 değil 9 un ileri işaretçisinin gösterdiği 16 dır. Ayrıca 16 nın geri işaretçisi de artık 9 u değil NULL u göstermektedir. Listenin Son Elemanını Silme Çift bağlı listede son elemanı sildiğimizde, listenin yeni son elemanının belirlenmesi gerekir. Çift bağlı listede elimizdeki bağlantılar ile hem ileriye hem de geriye doğru gittiğimizden, listenin sondan bir önceki elemanına erişmek için sadece geri işaretçisini kullanmamız yeterlidir.

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ı 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması 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

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ı

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ı

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ı

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 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek

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ı

Alıştırma 1: Yineleme

Alıştırma 1: Yineleme Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:

Detaylı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)... Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:

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ı

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada, TAMSAYILAR Z = {.., -, -, -, 0,,,, } kümesinin her bir elemanına tamsayı denir. Burada, + Z = {,,,...} kümesine, pozitif tamsayılar kümesi denir. Z = {...,,,,} kümesine, negatif tamsayılar kümesi denir.

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ı

VEKTÖR UZAYLARI 1.GİRİŞ

VEKTÖR UZAYLARI 1.GİRİŞ 1.GİRİŞ Bu bölüm lineer cebirin temelindeki cebirsel yapıya, sonlu boyutlu vektör uzayına giriş yapmaktadır. Bir vektör uzayının tanımı, elemanları skalar olarak adlandırılan herhangi bir cisim içerir.

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

MAK 210 SAYISAL ANALİZ

MAK 210 SAYISAL ANALİZ MAK 210 SAYISAL ANALİZ BÖLÜM 6- İSTATİSTİK VE REGRESYON ANALİZİ Doç. Dr. Ali Rıza YILDIZ 1 İSTATİSTİK VE REGRESYON ANALİZİ Bütün noktalardan geçen bir denklem bulmak yerine noktaları temsil eden, yani

Detaylı

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır. TEMEL KAVRAMLAR RAKAM Bir çokluk belirtmek için kullanılan sembollere rakam denir. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sembolleri birer rakamdır. 2. TAMSAYILAR KÜMESİ Z = {..., -3, -2, -1, 0, 1, 2, 3, 4,... }

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)

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ı

8.Konu Vektör uzayları, Alt Uzaylar

8.Konu Vektör uzayları, Alt Uzaylar 8.Konu Vektör uzayları, Alt Uzaylar 8.1. Düzlemde vektörler Düzlemdeki her noktası ile reel sayılardan oluşan ikilisini eşleştirebiliriz. Buna P noktanın koordinatları denir. y-ekseni P x y O dan P ye

Detaylı

ÜSLÜ SAYILAR SİBEL BAŞ AKDENİZ ÜNİVERSİTESİ EĞİTİM FAK. İLKÖĞRT. MAT. ÖĞRT. 2. SINIF

ÜSLÜ SAYILAR SİBEL BAŞ AKDENİZ ÜNİVERSİTESİ EĞİTİM FAK. İLKÖĞRT. MAT. ÖĞRT. 2. SINIF ÜSLÜ SAYILAR SİBEL BAŞ 20120907010 AKDENİZ ÜNİVERSİTESİ EĞİTİM FAK. İLKÖĞRT. MAT. ÖĞRT. 2. SINIF 1 ANLATIMI ÜSLÜ SAYILAR KONU Üslü sayılar konu anlatımı içeriği; Üslü sayıların gösterimi, Negatif üslü

Detaylı

İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ

İTÜ Bilgisayar Mühendisliği Bölümü, BLG433-Bilgisayar Haberleşmesi ders notları, Dr. Sema Oktuğ Bölüm 3 : HATA SEZME TEKNİKLERİ Türkçe (İngilizce) karşılıklar Eşlik sınaması (parity check) Eşlik biti (parity bit) Çevrimli fazlalık sınaması (cyclic redundancy check) Sağnak/çoğuşma (burst) Bölüm Hedefi

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ı

JAVADA DİZİ İŞLEMLERİ

JAVADA DİZİ İŞLEMLERİ JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 5 1. Aşağıdaki programların çıktısı

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ı

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1 Dosyalarda Farklı Yaklaşımlar Kütük Organizasyonu 1 Giriş Şimdiye kadar öğrendiğimiz temel dosyalama komutlarıyla (fopen,flclose, fputs vb..) dosya oluşturabilmekte, kayıt ekleyebilmekte ve her bir kaydın

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Kuyruk, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Algoritmalar ve Karmaşıklık

Algoritmalar ve Karmaşıklık Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün

Detaylı

Arama Algoritmaları. Doğrusal Arama ve Binary Arama

Arama Algoritmaları. Doğrusal Arama ve Binary Arama Arama Algoritmaları Doğrusal Arama ve Binary Arama Doğrusal Arama-Örnek Dizi (Array) sayilistesiiçerisindeki sayılar aşağıdaki gibidir: 17 23 5 11 2 29 3 11, verilen dizi içerisinde aranacaksa doğrusal

Detaylı

TEMEL KAVRAMLAR. SAYI KÜMELERİ 1. Doğal Sayılar

TEMEL KAVRAMLAR. SAYI KÜMELERİ 1. Doğal Sayılar TEMEL KAVRAMLAR Rakam: Sayıları ifade etmeye yarayan sembollere rakam denir. Bu semboller {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} kümesinin elemanlarıdır., b ve c birer rakamdır. 15 b = c olduğuna göre, + b + c

Detaylı

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Özyinelemeler veya artık teknik Türkçeye girmiş olan rekürsiflik en çok duyulan fakat kullanımında zorluklar görülen tekniklerdendir.

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ı

m=n şeklindeki matrislere kare matris adı verilir. şeklindeki matrislere ise sütun matrisi denir. şeklindeki A matrisi bir kare matristir.

m=n şeklindeki matrislere kare matris adı verilir. şeklindeki matrislere ise sütun matrisi denir. şeklindeki A matrisi bir kare matristir. Matrisler Satır ve sütunlar halinde düzenlenmiş tabloya matris denir. m satırı, n ise sütunu gösterir. a!! a!" a!! a!" a!! a!! a!! a!! a!" m=n şeklindeki matrislere kare matris adı verilir. [2 3 1] şeklinde,

Detaylı

2. ÜNİTE RASYONEL,ÜSLÜ VE KÖKLÜ SAYILAR

2. ÜNİTE RASYONEL,ÜSLÜ VE KÖKLÜ SAYILAR 2. ÜNİTE RASYONEL,ÜSLÜ VE KÖKLÜ SAYILAR KONULAR 1. RASYONEL SAYILAR 2. Kesir Çeşitleri 3. Kesirlerin Sadeleştirilmesi 4. Rasyonel Sayılarda Sıralama 5. Rasyonel Sayılarda İşlemler 6. ÜSLÜ İFADE 7. Üssün

Detaylı

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir. PHP'nin Temelleri PHP Nedir? PHP, bir programlama dili olarak, değişkenler, değişkenlerin değerleriyle bir işlem yapmayı sağlayan işlemciler (operatörler), işlemcilerle oluşturulan deyimler ve nihayet

Detaylı

Matlab da Dizi ve Matrisler. Mustafa Coşar

Matlab da Dizi ve Matrisler. Mustafa Coşar Matlab da Dizi ve Matrisler Mustafa Coşar MATLAB Değişkenleri Matlab da değişkenler; skaler, dizi(vektör), matris veya metin (string) türünde olabilirler. Örnek olarak: a=1; b=-3.2e3; c=22/5; metin= mustafa

Detaylı

ÜSLÜ SAYILAR. AMAÇ 1: 6 ve 7. Sınıflarda görmüş olduğumuz üslü ifadelerdeki temel kavramları hatırlama

ÜSLÜ SAYILAR. AMAÇ 1: 6 ve 7. Sınıflarda görmüş olduğumuz üslü ifadelerdeki temel kavramları hatırlama AMAÇ 1: 6 ve 7. Sınıflarda görmüş olduğumuz üslü ifadelerdeki temel kavramları hatırlama KURAL: Bir sayının belli bir sayıda yan yana çarpımının kolay yoldan gösterimine üslü sayılar denir. Örneğin 5 sayısının

Detaylı

Rasgele Sayı Üretme. Rasgele Sayıların Özellikleri. İki önemli istaiksel özelliği var :

Rasgele Sayı Üretme. Rasgele Sayıların Özellikleri. İki önemli istaiksel özelliği var : Rasgele Sayı Üretme Rasgele Sayıların Özellikleri İki önemli istaiksel özelliği var : Düzgünlük (Uniformity) Bağımsızlık R i, rasgele sayısı olasılık yoğunluk fonksiyonu aşağıdaki gibi olan uniform bir

Detaylı

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. İşaretli Tamsayı Gösterimi 1. İşaretli Büyüklük Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. Örnek

Detaylı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

İnternet Programcılığı Öğr. Gör. Serkan AKSU  PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu

Detaylı

ArrayList Uygulamaları

ArrayList Uygulamaları ArrayList Uygulamaları Aşağıdaki program önce boş bir ArrayList yaratıyor. Sonra sırasıyla şu işleri yapıyor: Listenin boş olup olmadığını yaz. Ambara üç tane öğe ekle. İndisi 2 olan yere bir öğe sokuştur.

Detaylı

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar: Dosyalama Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt

Detaylı

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Öğr. Gör. M. Ozan AKI r1.0 Algoritmalar (Algorithms) Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir

Detaylı

2014-2015 EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

2014-2015 EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI 2014-2015 EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI İşletim Sisteminde Yapılan Uygulamalar Bir Bilgisayarda Hangi İşletim Sistemi Yüklü Olduğunu

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Yrd. Doç. Dr. Ümit ATİLA

Yrd. Doç. Dr. Ümit ATİLA Yrd. Doç. Dr. Ümit ATİLA Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme. Bilgisayar sistemleri için veri sıralama çok önemlidir. Sıralama işlemi, hem arama işlemlerini hem de bir grup veriyi

Detaylı

DİSK DEPOLAMA ALANLARI

DİSK DEPOLAMA ALANLARI DİSK DEPOLAMA ALANLARI 1. Giriş İşlemci hızı ve hafıza kapasitesinin disk hızından çok daha hızlı bir gelişim içinde bulunduğu göz önüne alınırsa, disk kullanımında teorik ilgi ve uygulamanın önemliliği

Detaylı

Mustafa Özdemir İrtibat İçin : veya Altın Nokta Yayınevi

Mustafa Özdemir İrtibat İçin : veya Altın Nokta Yayınevi 2 Matematik Olimpiyatlarına Hazırlık 4 Mustafa Özdemir MATEMATİK OLİMPİYATLARINA HAZIRLIK 4 (336 sayfa) ANALİZ CEBİR 1 TANITIM DÖKÜMANI (Kitabın içeriği hakkında bir bilgi verilmesi amacıyla bu döküman

Detaylı

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR Algoritmaların Karşılaştırılması Doç. Dr. Aybars UĞUR Giriş Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. Bir programın zaman karmaşıklığı

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Operatörler 1 Operatör Nedir? Operatörler önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakterler ya da karakterler topluluğudur. Operatörlerin işlem

Detaylı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2014-2015 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 2. Ara Sınav 09.04.2015 Sınav Süresi: 90 dakika

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 08.03.2011 1 Çok Boyutlu Diziler Önceki derslerimizde dizileri görmüştük. Kısaca özetleyecek olursak, belirlediğimiz sayıda değişkeni bir sıra içinde tutmamız, diziler sayesinde gerçekleşiyordu.

Detaylı

8. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

8. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI. 8. HAFTA BLM323 SAYISAL ANALİZ Okt. Yasin ORTAKCI yasinortakci@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 MATRİSLER Matris veya dizey, dikdörtgen bir sayılar tablosu

Detaylı

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri 7.0. Amaç Ve Kapsam Deneyde C dilinde kullanılan fonksiyon tanımlama ve parametre aktarım yöntemleri hakkında bilgi verilecektir. 7.1. Deneyden

Detaylı

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri Hesap Tabloları(Excel 2007) HAFTA 1 1. Hesap Tablolarına Giriş 1.1. Hesap tablosu tanımı, kullanım amacı ve yerleri 1.2. MS Excel Uygulamasına giriş

Detaylı

T.C. İçişleri Bakanlığı Bilgi İşlem Dairesi Başkanlığı. Evrak Logo Ekleme Kılavuzu. Kasım 2012

T.C. İçişleri Bakanlığı Bilgi İşlem Dairesi Başkanlığı. Evrak Logo Ekleme Kılavuzu. Kasım 2012 T.C. İçişleri Bakanlığı Bilgi İşlem Dairesi Başkanlığı Evrak Logo Ekleme Kılavuzu Kasım 2012 İçerik 1 Birim Logosu Kayıt İşlemleri... 3 1.1 Tek Logo Ekleme İşlemleri... 4 1.1.1 Logo Pozisyonu :... 5 1.1.2

Detaylı

BAĞLI LİSTELER BAĞLI LİSTELER

BAĞLI LİSTELER BAĞLI LİSTELER Singly linked lists (Tek bağlı) Doubly linked lists (Çift bağlı) Circular lists Skip lists Self-organized lists Sparse tables Yrd.Doç.Dr. M. Ali Akcayol Singly linked lists Dizilerin dezavantajları. -

Detaylı

sayısının tamkare olmasını sağlayan kaç p asal sayısı vardır?(88.32) = n 2 ise, (2 p 1

sayısının tamkare olmasını sağlayan kaç p asal sayısı vardır?(88.32) = n 2 ise, (2 p 1 TAM KARELER 1. Bir 1000 basamaklı sayıda bir tanesi dışında tüm basamaklar 5 tir. Bu sayının hiçbir tam sayının karesi olamayacağını kanıtlayınız. (2L44) Çözüm: Son rakam 5 ise, bir önceki 2 olmak zorunda.

Detaylı

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K); 2009-2010 BAHAR DÖNEMİ MC 689 ALGORİTMA TASARIMI ve ANALİZİ I. VİZE ÇÖZÜMLERİ 1. a) Böl ve yönet (divide & conquer) tarzındaki algoritmaların genel özelliklerini (çalışma mantıklarını) ve aşamalarını kısaca

Detaylı

SQL Kod ile Tablo Oluşturma

SQL Kod ile Tablo Oluşturma SQL Kod ile Tablo Oluşturma Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı

Detaylı

BPR152-Algoritma ve Programlama II Uygulama -13

BPR152-Algoritma ve Programlama II Uygulama -13 Örnek problemler ve çözümleri /*Klavyeden girilen n ve m aralığındaki (n ve m dahil) 2, 3 ve 5 sayılarına bölünebilen sayıların toplamlarını ve ortalamalarını hesaplayan bir C# programını yazınız. Not-1:

Detaylı

YAYIN TEŞVİK UYGULAMA YÖNERGESİ

YAYIN TEŞVİK UYGULAMA YÖNERGESİ YAYIN TEŞVİK UYGULAMA YÖNERGESİ Erdem Çiçek İTÜ FEN BİLİMLERİ ENSTİTÜSÜ 285 63 33 0 İçindekiler Tablosu 1. Giriş Ekranı...2 2. Ana sayfa...3 3. Başvuru Ana Sayfası...4 3.1. Kişisel Bilgiler Ekranı...4

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ı

11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler

11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler 11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler 1. Asal sayılar 2. Bir tam sayının bölenleri 3. Modüler aritmetik 4. Bölünebilme kuralları 5. Lineer modüler aritmetik 6. Euler

Detaylı

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir. Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar

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ı

KUYRUKLAR. Doç. Dr. Aybars UĞUR

KUYRUKLAR. Doç. Dr. Aybars UĞUR KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

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

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 (Son Teslim Tarihi: 06.06.2014 17:30 a kadar ) Teslim: Arş. Gör. Ferhat Bozkurt

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

10.Konu Tam sayıların inşası

10.Konu Tam sayıların inşası 10.Konu Tam sayıların inşası 1. Tam sayılar kümesi 2. Tam sayılar kümesinde toplama ve çarpma 3. Pozitif ve negatif tam sayılar 4. Tam sayılar kümesinde çıkarma 5. Tam sayılar kümesinde sıralama 6. Bir

Detaylı

Telefon Rehberi Uygulaması

Telefon Rehberi Uygulaması Sayfa1 Telefon Rehberi Uygulaması Uygulama, temel düzeyde, telefon rehberi üzerinedir. Kullanıcı, telefon rehberine eklediği her bir kayıt içi ad, soyad, ev telefonu ve üç adet cep telefonu bilgisi girebilmektedir.

Detaylı

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1 Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1 İçerik Temel Kavramlar Ağaçlarda Dolaşım İkili Ağaçlar (Binary Trees) İkili Arama Ağacı (Binary Search Tree ve Temel İşlemler Kütük Organizasyonu 2

Detaylı

TEOG. Sayma Sayıları ve Doğal Sayılar ÇÖZÜM ÖRNEK ÇÖZÜM ÖRNEK SAYI BASAMAKLARI VE SAYILARIN ÇÖZÜMLENMESİ 1. DOĞAL SAYILAR.

TEOG. Sayma Sayıları ve Doğal Sayılar ÇÖZÜM ÖRNEK ÇÖZÜM ÖRNEK SAYI BASAMAKLARI VE SAYILARIN ÇÖZÜMLENMESİ 1. DOĞAL SAYILAR. TEOG Sayma Sayıları ve Doğal Sayılar 1. DOĞAL SAYILAR 0 dan başlayıp artı sonsuza kadar giden sayılara doğal sayılar denir ve N ile gösterilir. N={0, 1, 2, 3,...,n, n+1,...} a ve b doğal sayılar olmak

Detaylı

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. ALGORİTMA TANIMI Verilen herhangi bir sorunun çözümüne ulaşmak

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

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ı

İkinci Mertebeden Lineer Diferansiyel Denklemler

İkinci Mertebeden Lineer Diferansiyel Denklemler A(x)y + B(x)y + C(x)y = F (x) (5) Denklem (5) in sağ tarafında bulunan F (x) fonksiyonu, I aralığı üzerinde sıfıra özdeş ise, (5) denklemine lineer homogen; aksi taktirde lineer homogen olmayan denklem

Detaylı

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Mehmet Ali Aytekin Tahir Emre Kalaycı Gündem Gezgin Satıcı Problemi GSP'yi Çözen Algoritmalar Genetik Algoritmalar

Detaylı

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1 Sıralı Erişimli Dosyalar Kütük Organizasyonu 1 Dosya Fiziksel depolama ortamlarında verilerin saklandığı mantıksal yapılara dosya denir. Dosyalar iki şekilde görülebilir. Byte dizisi şeklinde veya Alanlar

Detaylı

Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.

Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util. LinkedList java.util Class LinkedList java.lang.object java.util.abstractcollection java.util.abstractlist java.util.abstractsequentiallist java.util.linkedlist LinkedList sınıfı List arayüzünü kılgılar

Detaylı

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,

Detaylı

Ders - 7 while döngüsü

Ders - 7 while döngüsü Ders - 7 while döngüsü import java.util.scanner; public class StringKiyaslama { public static void main(string[] args) { Scanner klavye=new Scanner(System.in); Oncelikle Lab icin bir aciklama System.out.println("1.

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ı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

MATEMATiKSEL iktisat

MATEMATiKSEL iktisat DİKKAT!... BU ÖZET 8 ÜNİTEDİR BU- RADA İLK ÜNİTE GÖSTERİLMEKTEDİR. MATEMATiKSEL iktisat KISA ÖZET KOLAY AOF Kolayaöf.com 0362 233 8723 Sayfa 2 içindekiler 1.ünite-Türev ve Kuralları..3 2.üniteTek Değişkenli

Detaylı

İÇİNDEKİLER. Bölüm 2 CEBİR 43

İÇİNDEKİLER. Bölüm 2 CEBİR 43 İÇİNDEKİLER ÖNSÖZ III Bölüm 1 SAYILAR 13 1.1 Doğal Sayılar 15 1.1.1. Tek ve Çift Sayılar 15 1.1.2. Asal Sayılar 15 1.1.3 Doğal Sayıların Özellikleri 15 1.1.4 Doğal Sayılarda Özel Toplamlar 16 1.1.5. Faktöriyel

Detaylı

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK MATLAB de Bilgisayar Programlama Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK disp komutu: Ekrana mesaj veya bir değişken değeri yazdırmak için kullanılan komuttur.

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Rasgele Erişim (Random Access) Dosyaları Rasgele Erişim Dosyalarına Veri Yazma Rasgele Erişim Dosyalarından Veri Okuma 1 Sıralı Erişim Dosyası Bir

Detaylı

13.Konu Reel sayılar

13.Konu Reel sayılar 13.Konu Reel sayılar 1. Temel dizi 2. Temel dizilerde toplama ve çarpma 3. Reel sayılar kümesi 4. Reel sayılar kümesinde toplama ve çarpma 5. Reel sayılar kümesinde sıralama 6. Reel sayılar kümesinin tamlık

Detaylı

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading)

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading) C++ da hazır olarak var olan operatörlere (+, -, *, /,!,

Detaylı

Ders 6: Karşılaştırma Deyimleri

Ders 6: Karşılaştırma Deyimleri Ders 6: Karşılaştırma Deyimleri Giriş Program içerisinde bazen iki veya daha fazla değerin karşılaştırılması gerekebilir Bunun için, bütün programlama dillerinde karşılaştırma deyimleri mevcuttur C dili,

Detaylı

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 7. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Program Denetimi Yük. Müh. Köksal Gündoğdu 2 Program Denetimi Bir program, belirli deyim satırlarından oluşur ve genellikle bu

Detaylı

matematik LYS SORU BANKASI KONU ÖZETLERİ KONU ALT BÖLÜM TESTLERİ GERİ BESLEME TESTLERİ Süleyman ERTEKİN Öğrenci Kitaplığı

matematik LYS SORU BANKASI KONU ÖZETLERİ KONU ALT BÖLÜM TESTLERİ GERİ BESLEME TESTLERİ Süleyman ERTEKİN Öğrenci Kitaplığı matematik SORU BANKASI Süleyman ERTEKİN LYS KONU ALT BÖLÜM TESTLERİ GERİ BESLEME TESTLERİ KONU ÖZETLERİ Öğrenci Kitaplığı SORU BANKASI matematik LYS EDAM Öğrenci Kitaplığı 18 EDAM ın yazılı izni olmaksızın,

Detaylı