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ı

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ı

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ı

Ö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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İ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ı

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ı

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ı

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ı

İ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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 Bölüm 10 Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 10. Bölüm konuları Çağırma / geri dönme semantiği Yığıt-dinamik yerel değişkeni olan altprogramların gerçeklenmesi İçiçe altprogramlar Statik

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ı

İÇİ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ı

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ı

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ı

TEMEL EXCEL. 1 - Excel e Giriş

TEMEL EXCEL. 1 - Excel e Giriş TEMEL EXCEL 1 - Excel e Giriş Excel e Başlangıç Excel Ekranı Ribbon (Şerit) Kullanmak, başka Bilgisayarlara Uygulamak Backround (Arka Plan) Görünümünü Değiştirmek Kısa Yol Menülerini Kullanmak Diyalog

Detaylı

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler SQL'de Veri İşleme Komutları SQL'de verileri işlemek için kullanılan komutlara DML (Data Manipulation Language Veri İşleme Dili) denilmektedir. Bu komutlar ile oluşturulan ifadeler tablolara kayıt eklemek,

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ı

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ı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak.

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Amaçlarımız 2 Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Microsoft Excel 2010 da bilgi girişi yapabilmek. Excel de

Detaylı

HEDEF ARA ve ÇÖZÜCÜ HEDEF ARA

HEDEF ARA ve ÇÖZÜCÜ HEDEF ARA HEDEF ARA ve ÇÖZÜCÜ HEDEF ARA Hedef ara komutu bir fonksiyonun tersinin bulunmasında kullanılır. Hedef ara işlemi, y=f(x) gibi bir fonksiyonda y değeri verildiğinde x değerinin bulunmasıdır. Bu işlem,

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

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ı

Dizi Antenler. Özdeş anten elemanlarından oluşan bir dizi antenin ışıma diyagramını belirleyen faktörler şunlardır.

Dizi Antenler. Özdeş anten elemanlarından oluşan bir dizi antenin ışıma diyagramını belirleyen faktörler şunlardır. Dizi Antenler Özdeş anten elemanlarından oluşan bir dizi antenin ışıma diyagramını belirleyen faktörler şunlardır. 1. Dizi antenin geometrik şekli (lineer, dairesel, küresel..vs.) 2. Dizi elemanları arasındaki

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ı

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. ASP.NET DERS 1 Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. Gelen ekranda Visual C# seçildikten

Detaylı

Microsoft Excel Uygulaması 2

Microsoft Excel Uygulaması 2 Microsoft Excel Uygulaması 2 Dört Temel İşlem: MS Excel hücrelerinde doğrudan değerlere ya da hücre başvurularına bağlı olarak hesaplamalar yapmak mümkündür. Temel aritmetik işlemlerin gerçekleştirilmesi

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ı

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ı

1- Sayı - Tam sayıları ifade etmek için kullanılır. İfade edilen değişkene isim ve değer verilir.

1- Sayı - Tam sayıları ifade etmek için kullanılır. İfade edilen değişkene isim ve değer verilir. Değişkenler 1- Sayı - Tam sayıları ifade etmek için kullanılır. İfade edilen değişkene isim ve değer verilir. Örnek Kullanım : sayı değer= 3; sayı sayı1; 2- ondalık - Ondalık sayıları ifade etmek için

Detaylı

BİRİNCİ DERECEDEN BİR BİLİNMEYENLİ DENKLEMLER

BİRİNCİ DERECEDEN BİR BİLİNMEYENLİ DENKLEMLER YILLAR 00 00 00 00 00 00 007 008 009 00 ÖSS-YGS - - - - - - - - BİRİNCİ DERECEDEN BİR BİLİNMEYENLİ DENKLEMLER a,b R ve a 0 olmak üzere ab=0 şeklindeki denklemlere Birinci dereceden bir bilinmeyenli denklemler

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

Detaylı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

İş Akış Yönetimi LOGO Kasım 2014

İş Akış Yönetimi LOGO Kasım 2014 İş Akış Yönetimi LOGO Kasım 2014 İçindekiler İş Akış Yönetimi... 3 Görevler... 4 Görev Bilgileri... 5 Mesajlar... 7 Zaman Ayarlayıcı İşlemler... 8 Zamanlanmış Görevler... 10 Zamanlanmış Görev Bilgileri...

Detaylı

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir: Gereksiz Kodlar Kaan Aslan 9 Temuz 1997 Kapalı spor salonu, durak yeri, taşıt aracı, en optimum, geri iade etmek, davranış biçimi Bu ifadelerde bir gariplik var, değil mi? Açık spor salonu göreniniz var

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim' Bu Derste Öğrenecekleriniz: 1- Veri Tabanı Adı Değiştirme 2- Nesnelerin Adını Değiştirme a. Tablo Adı Değiştirme b. Alan Adı Değiştirme c. Constraint (Kısıtlama) Adı Değiştirme 3- Tablo Düzenleme Komutları

Detaylı

Bö lü m 6: Kelime İ şlemciler

Bö lü m 6: Kelime İ şlemciler Bö lü m 6: Kelime İ şlemciler Könü 3: Tablö ve Resim Ekleme ve Dü zeltme Hazırlayan: Serdar Engin Koç Bü könü bittiğinde; Belgeye resim, küçük resim, şekil ve SmartArt ekleme Metin kutusu ekleme ve biçimlendirme

Detaylı

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz? PYTHON DERS-8 LİSTELER-2 Geçen ders listeler oluşturmayı, listedeki her elemanın bir index numarası olduğu ve bu numaranın 0'dan başladığını, listenin tamamını veya index numarası sayesinde belirli bir

Detaylı

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı Dizgi Eşleme Algoritmaları

Detaylı

Projenin Adı: Metalik Oranlar ve Karmaşık Sayı Uygulamaları

Projenin Adı: Metalik Oranlar ve Karmaşık Sayı Uygulamaları Projenin Adı: Metalik Oranlar ve Karmaşık Sayı Uygulamaları Projenin Amacı: Metalik Oranların elde edildiği ikinci dereceden denklemin diskriminantını ele alarak karmaşık sayılarla uygulama yapmak ve elde

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ı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ GİRİŞ AKIŞ ŞEMASI Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan

Detaylı

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI 10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI İkincil bellekte tanımlanmış bölgelere dosya denir. Her dosyanın bir ismi vardır. Ancak dosyaların isimlendirme kuralları sistemden sisteme göre değişebilmektedir. Dosya

Detaylı

Standard Template Library

Standard Template Library Standard Template Library Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun STL ANSI/ISO Standard C++ ın içerdiği algoritmalar ANSI/ISO Standard C++ ın içerdiği algoritmalar

Detaylı

İNTERNET PROGRAMCILIĞI DERSİ

İNTERNET PROGRAMCILIĞI DERSİ İNTERNET PROGRAMCILIĞI DERSİ Dersin Modülleri İnternet Programcılığı 1 İnternet Programcılığı 2 İnternet Programcılığı 3 İnternet Programcılığı 4 İnternet Programcılığı 5 Kazandırılan Yeterlikler Programlama

Detaylı

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır. Stack Sınıfı (yığıt) java.util Class Stack java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector java.util.stack Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output)

Detaylı

EXCEL 2007 ELEKTRONİK ÇİZELGE

EXCEL 2007 ELEKTRONİK ÇİZELGE EXCEL 2007 ELEKTRONİK ÇİZELGE Excel, Microsoft Office paketinde yer alan ve iş hayatında en sık kullanılan programlardandır. Bir hesap tablosu programıdır. Excel, her türlü veriyi (özellikle sayısal verileri)

Detaylı

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109 vii 1 Neden Ruby? 2 Ruby Kurulumu 5 Windows ta Ruby Kurulumu 5 Linux ve Mac OS ta Ruby Kurulumu 6 Doğru Geliştirme Ortamının Seçimi 6 Diğer Ruby Uyarlamaları 9 Örnek Kodlar Hakkında 10 İnternet Adresi

Detaylı

MS-OFFICE EXCEL 2003

MS-OFFICE EXCEL 2003 MS-OFFICE EXCEL 2003 İnternetten indirilmiş ders notları düzenlenmiştir. Excel; bir hesap tablosu ve grafik programıdır. Genellikle matematiksel işlemler, tablo ve grafik çizimleri için kullanılır. Microsoft

Detaylı