22 Mayıs 2015 Cuma

Çift Yönlü Bağlı Liste Tamsayı Uygulaması

Dairesel Bağlı Liste Karakter Uygulaması

Dairesel Bağlı Liste

21 Mayıs 2015 Perşembe

Çıkışsız Sonlu Durum Makinası

En Küçük Yol Ağacı Problemleri ve Kruskal Algoritmasının Uygulanması

En Kısa Yol Problemleri ve Dijkstra Algoritmasının Uygulanması

Graf Veri Modeli

İkili Arama Ağacı

Aynı zamanda ağaç üzerinde işlem yapan fonksiyonlar, çoğunlukla rekürsif yapıda tasarlandığı için yığını fazlaca kullanırlar. Her biri değişik bir uygulamaya doğal çözüm olan ikili ağaç, kodlama ağacı, sözlük ağacı, kümeleme ağacı gibi çeşitli ağaç şekilleri vardır.

Dizi Üzerinde Kaydırmalı Kuyruk Fonksiyonu

Yığın ve Dizi ile Gerçekleştirilmesi

Yığın, eleman ekleme ve çıkarma işlemlerinin dizinin en son konumuna göre yapıldığı özel bir yapıdır. Bu çalışmada, yığın konusuna kısaca değinildikten sonra dizi ile yığın yapısının C++ gerçekleştirilmesini sağlayan uygulamaya yer verilmiştir.


Yığın, eleman ekleme ve çıkarma işlemlerinin dizinin en son konumuna göre yapıldığı özel bir yapıdır. Sıralı yapılarda olduğu gibi ara elemanlara doğrudan erişim yapılamaz.

Günlük hayattan birkaç örneğe bakıldığında:
Evin hanımı raftan bir tabak almak istediğinde en üsteki tabağı çekecektir veya rafa bir tabak koymak istediğinde, o tabak en üstteki tabağın üzerine yerleşecektir. Aynı şekilde süpermarketteki müşteri en üstteki kutuyu alacaktır. Benzer bir mantık ile bir silahın şarjörüne yerleştirilen mermilerden en son yerleştirilen ilk olarak kullanılacaktır. Yığından boşaltma işlemi yapıldığında en son eklenen eleman ilk çıkacak şekilde sıralı bir kullanım gerçekleşecektir.

Gösterge ile Doğrusal Bağlı Liste Uygulaması

Bu çalışmada, gösterge/işaretçi kullanılarak doğrusal bağlı liste tasarımının gerçekleştirilmesi sağlanmıştır. Program C++ dili ile yazılmıştır.

Dizi ile tanımlanan doğrusal bağlı liste yapılarının işlenmesinde, yığın ve kuyruk yapılarında olduğu gibi bazı pratik sorunlar vardır. Dizi ile bağlı liste tasarımından listeyi tanımlayan değişken ile ilk düğümü gösteren değişken global olarak kullanılmalıdır. Bu kaçınılmaz bir durumdur. Ayrıca liste büyüklükleri tanımlanan dizi büyüklüğü ile sınırlıdır. Bu nedenle bilgisayar bellek alanı etkili bir şekilde kullanılamaz. Bahsi geçen sorunların giderilmesinde, bağlı listeyi temsil eden değişkenin gösterge türü olarak tanımlanması uygun bir çözüm getirmektedir. Gösterge değişkeni ile tanımlanan yapılarda, bağlı listeye, başlangıç düğümünden başlamak üzere ve eldeki problemin özelliğine göre herhangi bir uzunluk sınırı olmadan yeni düğümler eklenebilir veya listede bulunan düğümler çıkartılarak bellekten silinebilir. Bu ekleme ve silme işlemlerinde yığın ve kuyruk yapılarının aksine herhangi bir sıra söz konusu değildir. Bu işlemlerin ne şekilde ve hangi sırada yapılacağı tamamen problemin içerdiği özelliklere göre saptanmaktadır.
http://www.zafercomert.com/IcerikDetay.aspx?zcms=77

Çift Yönlü Bağlı Listeler

İki adet bağlantı bilgisi tutan bağlı listeler iki yönlü bağlantılı listeler olarak ifade edilir. Bağlantılardan bir tanesi önündeki düğümü işaret ederken, diğeri sonrasındaki düğümü işaret eder. Dolayısıyla liste üzerinde iki yönlü hareket edilebilir. Araya düğüm ekleme ya da silme işlemleri tek yönlü bağlı listelere göre daha kolay yapılabilmektedir. Bu çalışmada çift yönlü bağlı liste yapısı kullanılarak ekleme, silme, listeleme, arama ve bağlı listenin bir dosyaya kayıt edilip, dosyadan okunarak tekrar oluşturulması fonksiyonlarını içeren C++ uygulamasına yer verilecektir.

İki adet bağlantı bilgisi tutan bağlı listeler iki yönlü bağlantılı listeler olarak ifade edilir. Paylaşılan uygulamada, veri yapısında on ve arka olarak ifade edilen işaretçiler sayesinde bağlı listede iki yönlü hareket edilebilmektedir.

Doğrusal Bağlı Listeler

Bağlı listeler, birbiri ardına bağlanmış düğümlerdir. Her düğüm en azından bir veri ve liste içerisindeki bir sonraki düğüme işaret eden işaretçiyi içermektedir. Bu çalışmada, C++ dili kullanılarak bağlantı liste oluşturulmuş ve bağlantılı listeye eleman ekleme, silme, listeme ve arama işlemleri gerçekleştirilmiştir.Bağlantılı liste, adı üzerinde aynı kümeye ait veri parçalarının birbirine, bellek üzerinde sanal olarak bağlanmasıyla oluşturulur; tüm veri, bir tren katarı gibi birbirine bağlı parçalardan oluşur. Bağlantılı liste, liste veri modelinin uygulama şekillerinden biridir denilebilir; ekleme ve silme işlemlerinin esnek şekilde yapılabilmesi, aradan bir kayıt çıkarıldığında veya araya yeni bir kayıt girildiğinde diğer kayıtlara dokunulmaması, uygulama ve problemlere göre değişik liste yapılarının kolayca tanımlanabilmesi açılarından bağlantılı listeler program geliştirmede önemli bir yere sahiptirler. Bağlantılı listelerin zayıf yönü, üzerindeki ara elemanlara kolayca erişilememesi ve sık sık arama gerektiren uygulamalarda arama karmaşıklığının göreceli olarak büyük olmasıdır.Bağlantılı liste temelde liste veri modelinin bir uygulamasıdır denebilir. Bağlantılar, veri parçalarının geliş/giriş sırasına göre olabileceği gibi belirli bir anahtar sözcüğe göre sıralı özellikte de yapılabilir. Eğer bağlantılar belirli bir anahtar sözcüğe göre sıralı özellikte yapılıyorsa sıralı bağlantılı liste, geliş sırasına göre yapılıyorsa, yalın olarak, bağlantılı liste olarak adlandırılır.

İkili Arama

İkili Arama, sıralı bir dizide, belirli değerin bulunmasına yönelik bir algoritmadır. Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur. Bu çalışmada, ikili aramanın bir sıralı dizi üzerinde C++ kullanılarak gerçekleştirilmesi sağlanmıştır. İkili arama, sıralı veriler üzerinde çalışan bir algoritmadır. Veriler önceden, belirli bir formata göre sıralanmış durumdadır. Eğer veriler bir dizi üzerinde sıralı olarak tutuluyor veya ikili ağaç veri modeli kullanılıyorsa ikili arama yapılabilir. Sıralı dizi için tasarlanan fonksiyon dizi, dizinin eleman sayısı ve aranan ifadeleri formal parametre olarak kabul etmektedir. Dizinin ortanca değeri hesaplanarak bir çevrime girilir. Aranan ifade ortadaki eleman değilse, arana ifadenin büyük ya da küçük olma durumuna göre aramanın yönü belirlenerek işleme devam edilir.

Doğrusal veya Ardışıl Arama

Ardışıl ya da doğrusal arama, en sade arama algoritmasıdır. Arama ilk kayıttan başlayıp en son kayıta kadar tek tek bakılarak yapılır. Bu çalışmada, doğrusal arama yapan C++ programına yer verilmiştir.

Bir dizi içinde bir verinin olup olmadığını anlamak için kullanılan basit bir algoritmadır. Doğrusal Arama Algoritması aranan veriyi, dizinin ilk öğesinden başlayarak son öğesine doğru, her terimle tek tek karşılaştırır. Bu algoritma, dizi içinde aranana eşit olan bir terim bulursa onun indisini verir. Aranan veriye eşit olan terim bulamazsa -1 değerini verir. –1 değeri verdiğinde, aranan öğe dizi içinde değildir. Dizi terimlerini, sırayla aranan öğe ile karşılaştırdığı için, bu algoritmaya dizisel arama algoritması adı da verilir.

Doğrusal aramayı iki özel duruma ayırabiliriz:
  1. Dizinin sırasız olması durumu
  2. Dizinin sıralı olması durumu
Sırasız bir dizi içinde bir öğenin olup olmadığını aramak için, dizinin ilk teriminden başlanır, aranan değer her bir terimle mukayese edilerek, dizinin sonuna doğru gidilir. Aranan öğe varsa, algoritma o terimin indisini verir. Dizinin sonuna gelindiği halde, aranan öğe bulunamamışsa, algoritma -1 değerini verir.Dizinin öğe sayısı çok değilse Doğrusal Arama algoritması tercih edilebilir ama öğe sayısı çok olduğunda bunun yerine İkili Arama algoritması tercih edilmelidir.

Hızlı Sıralama

Hızlı sıralama algoritması böl ve yönet politikasına dayanır; sıralanması istenen dizi belirli bir sınır değerine göre iki alt diziye ayrılır. İkiye ayırma işlemi, bu sınır sayısından küçük olan elemanlar diğer tarafa toplanarak yapılır. Bu uygulamada, hızlı sıralama algoritmasının C++ ile gerçekleştirilmesi sağlanmaktadır.


Hızlı sıralama algoritması, günümüzde yaygın olarak kullanılan bir sıralama algoritmasıdır. Hızlı sıralama algoritması, sıralanacak bir sayı dizisini daha küçük iki parçaya ayırıp oluşan bu küçük parçaların kendi içinde sıralanması mantığıyla çalışır.

Algoritmanın adımları aşağıdaki gibidir:
Sayı dizisinden herhangi bir sayıyı sınır eleman olarak seçilir.
Sayı dizisini sınırdan küçük olan tüm sayılar sınırın önüne, sınırdan büyük olan tüm sayılar sınırın arkasına gelecek biçimde düzenlenir (sınır, eşit olan sayılar her iki yana da geçebilir). Bu bölümlendirme işleminden sonra eleman sıralanmış son dizide olması gerektiği yere gelir. Algoritmanın bu aşamasına bölümlendirme aşaması denir.
Sınırın sol ve sağ yanında olmak üzere oluşan iki ayrı küçük sayı dizisi, hızlı sıralama algoritması bu küçük parçalar üzerinde yeniden özyineli olarak çağrılarak sıralanır.

Algoritma içinde sayı kalmayan (eleman sayısı sıfır olan) bir alt diziye ulaştığında bu dizinin sıralı olduğunu varsayar.

Kümeleme Sıralaması

Kümele sıralamasında, sıralanacak elemanlar ile önce bir kümeleme ağacı oluşturulur, daha sonra başka dizi gerektirmeksizin sırasız elemanların bulunduğu dizi üzerinde çalışır. Kümeleme sıralamasının temeli ikili kümeleme ağacı kurulmasına dayanır. Sıralanacak elemanlar ilk önce bir kümeleme ağacı oluşturur; bu durumda kök en büyük değere sahiptir. Bu yöntemde sıralı diziyi elde etmenin iki yolu vardır. Birisi bir başka dizi gerektirmeksizin sırasız elemanların bulunduğu dizi üzerinde çalışır, diğeri sıralı elemanların tutulacağı sıralı bir dizi gerektirir.

Kümeleme sıralaması, genel olarak uygulamalarda bir başka bellek alanı gerektirmeyen çözüm kullanmaktadır, dolayısıyla dahili hafıza bu algoritma için uygundur.

Birleşmeli Sıralama

Birleşmeli sıralama, böl ve yönet yaklaşımına dayanır ve dolayısıyla rekürsif tasarlanması doğasına uygundur. Sıralanması istenen küme elemanları, önce iki alt kümeye parçalanır ve fonksiyon kendisini sol alt küme ve sağ alt küme için iki kez çağırır. Bu çalışmada, birleşmeli sıralama uygulaması C++ ile geçekleştirilmiştir.
Birleşmeli sıralama, böl ve yönet yaklaşımına dayanır ve dolayısıyla rekürsif tasarlanması doğasına uygundur. Sıralanması istenen küme elemanları, önce iki alt kümeye parçalanır ve fonksiyon kendisini sol alt küme ve sağ alt küme için iki kez çağırır. Parçalama işlemine alt küme eleman sayısı tek oluncaya kadar devam edilir. Alt kümelerde bir tane eleman kalmışsa rekürsif çağırmalar geriye doğru, çağırana, dönmeye başlar ve geri dönülürken alt kümeler elemanları sıralı olacak biçimde birleştirilir. Algoritma adını, bu birleştirme işleminden almıştır.

Kabarcık Sıralama

Kabarcık Sıralaması, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına "Kabarcık" sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir kabarcık gibi dizinin üstüne doğru ilerlemesidir. Bu uygulamada, kabarcık sıralama algoritması C++ dili ile gerçekleştirilecektir. Başlangıçta yer yer değiştirme sıralaması olarak adlandırılan kabarcık sıralaması, dizi içindeki büyük elemanların algoritmanın her adımında dizinin sonuna doğru doğrusal olarak ilerlemesini sağlar. Yer değiştirme işleminde, komşu iki eleman karşılaştırılır; kendi aralarında uygun yerde değillerse yer değiştirilerek algoritma ilerletilir. Bu ilerleme, seçmeli sıralama algoritmasındaki dizideki değeri küçük olan elemanların dizinin başında kümelenmesi yöntemine benzer şekilde gerçekleşir.

Seçmeli Sıralama Algoritması

Seçmeli sıralama algoritmasında, dizinin başından ya da sonundan başlanır. Önce ilk eleman alınır ve daha sonra küme içerisindeki en küçük eleman aranır; bulunduğu zaman ilk eleman ile yer değiştirilir; daha sonra ikinci eleman alınır ve bu eleman dahil kalan elemanlar arasında ikinci en küçük eleman aranır ve ikinci elemana yerleştirilir. Bu işlem dizinin son elemanına kadar tekrarlanırsa dizi sıralanır. Bu çalışmada, seçmeli sıralama yapan C++ programına yer verilmiştir.


Seçmeli Sıralama, bilgisayar bilimlerinde kullanılan bir sıralama algoritmasıdır. Karmaşıklığı karesel olduğu için büyük listeler üzerinde kullanıldığında verim sağlamaz ve genel olarak benzeri olan eklemeli sıralamadan daha başarısızdır. Seçmeli sıralama yalın olduğu ve bazı durumlarda daha karmaşık olan algoritmalardan daha iyi sonuç verdiği için tercih edilebilir.

Eklemeli Sıralama Algoritması

Araya sokma algoritması, sıralanacak dizinin ilk elemanını yerine bırakarak, sonraki elemanları (alt diziyi) sırayla alarak sıraya uygun olan yere sokar. Bu çalışmada, dizi üzerinde araya sokma sıralaması yapan C++ fonksiyonuna yer verilecektir.

Eklemeli sıralama algoritması, sıralanacak dizinin ilk elemanını yerine bırakarak, sonraki elemanları sırayla alarak sıraya uygun olan yere sokar. Eklemeli sıralama, bilgisayar bilimlerinde kullanılan ve sıralı diziyi her adımda öğe öğe oluşturan bir sıralama algoritmasıdır. Büyük dizilerle çalışıldığında hızlı sıralama, birleştirmeli sıralama ve yığın sıralaması gibi daha gelişmiş sıralama algoritmalarından daha verimsiz çalışır. Avantajları ise aşağıda sıralanmıştır:

Yapılar ve Uygulamaları

Diziler ve Uygulamaları

Dizi, bir liste ya da tabloyu ifade eden bir yapıdır; bir küme gibi, öğelerden (bazen eleman veya terim de denir) oluşur. Programlama dilleri ya da teknik bir perspektif açısından dizi, aynı veri türüne sahip bir veri öbeğini ifade eden programlama bileşenidir. Bu çalışmada diziler ile ilgili bazı örnek programlara yer verilmiş ve programların C++ dili ile gerçekleştirilmesi sağlanmıştır. 1. Aritmetik Hesaplama Yapan ProgramGeliştirilen programda kullanıcıdan 15 adet sayı girmesi istenmiştir. Girilen sayıları bir dizi üzerinde tutulmuş ve bir çevrim yardımıyla aritmetik ortalamalarının hesaplanması sağlanmıştır. 2. Geçme Notu Hesaplayan ProgramBu programda, bir öğrencinin dört faklı dersten geçme notunu hesaplayan C++ programında yer verilecektir. Birinci, ikinci, üçüncü ve dördüncü dersler için öğrencinin vize ve final notu girilecek ve geçme notu formülüne hesaplanacaktır. Sonuç olarak geçti ya da kaldı bilgisi verilecektir. Geçti için G karakteri, kaldı için K karakteri kullanılacaktır.

İşaretçiler

İşaretçiler, herhangi bir değişkenin ya da veri topluluğunun hafızadaki adreslerini barındırırlar. Bu çalışmada C++ programında bir dizi tanımlanarak, dizi elemanlarının değerlerine ve adreslerine bir işaretçi yardımıyla erişilecektir.İşaretçi kavramını açıklamak için değişken kavramının bilinmesi gereklidir. Hatırlanacağı üzere değişkenler; bir programda yazma, okuma ya da işlem sonuçlarına saklamak üzere bellekte tanımlanan ve tutulan programlama bileşenleri olarak ifade edilecektir. Değişkenlere erişmek içinse isimlerinin kullanılması yeterli olmaktadır. Dolayısıyla değişken kullanırken değişkenler fiziksel adresleri ile ilgili herhangi bir endişe duyulmamaktadır. Bu nedenle ihtiyaç duyulduğunda değişkenleri çağırmak son derece kolay bir işlemdir.C++ programında işaretçiler, belleğin her bir gözünün 1 bayt olarak ayrıldığı bir adresleme sistemine sahiptir. Burada limit değeri, sahip olunan fiziksel bellek miktarı belirlemektedir. Neticede bellekteki her bir hücrenin benzersiz bir adresi bulunmaktadır. Burada sıralı bir yapı olduğu söylenebilir.Bir değişken tanımlandığında bellek ilgili değişkeni hafızada tutmak için bir alan ihtiyaç duyar. Örneğin bir tam sayı türünde değişken tanımlaması yapıldığında, tam sayısının hafıza kapladığı yer 4 bayt olduğundan ilgili değer için bellekte 4 baytlık alan ayrılır. Faklı veri türleri için bu değerler değişkenlik gösterir.İşaretçiler, herhangi bir değişkenin ya da veri topluluğunun hafızadaki adreslerini barındırırlar ve bu yönüyle değişkenlerden ayrılırlar. Örneğin bir uçaktaki D8 numaralı koltuk her zaman D8 numaralı koltuktur fakat her seferde bu koltuğa oturacak olan kişi değişmektedir. Normal bir değişken koltuğa oturan kişiyi ifade ederken; işaretçi ise koltuğun kendisini temsil etmektedir.İşaretçiler ile ilgili & ve * operatörlerinin anlaşılması konuyu kavramayı kolaylaştıracaktır.

İntegral Hesabı

Matris Toplamı

Bu çalışmada belli kurallar dâhilinde tanımlanan iki matrisin toplanmasını içeren C++ programına yer verilecektir. Matematikte matris veya dizey, dikdörtgen bir sayılar tablosu veya daha genel bir açıklamayla, toplanabilir veya çarpılabilir soyut miktarlar tablosudur. Dizeyler daha çok doğrusal denklemleri tanımlamak, doğrusal dönüşümlerde (lineer transformasyon) çarpanların takibi ve iki parametreye bağlı verilerin kaydedilmesi amacıyla kullanılırlar. Dizeylerin toplanabilir, çıkartılabilir, çarpılabilir, bölünebilir ve ayrıştırılabilir olmaları, doğrusal cebir ve dizey kuramının temel kavramı olmalarını sağlamıştır.Geliştirilen uygulamadan birinci matrisin indis değerlerinin toplamını alması, ikinci matrisin ise indis değerlerinin çarpımını alması sağlanmıştır. Toplam matrisi ise bu iki matrisin değerlerinin toplamını içermektedir.

Seri Hesabı

Sıralı Olmayan Bir Dizinin En Küçük ve En Büyük Elemanlarını Bulma

İkinci Dereceden Denklemin Köklerini Bulma

Faktöriyel Hesabı

Aritmetik ve Geometrik Ortalama Hesabı

Ortak Katların En Küçüğü (OKEK) Hesabı

Bu çalışmada Ortak Katların En Küçüğünü hesaplayan bir C++ programına yer verilecektir. En az biri sıfırdan farklı iki ya da daha fazla tam sayının ortak bölenlerinin en büyüğüne bu sayıların ortak bölenlerinin en büyüğü denir ve OBEB biçiminde gösterilir. OBEB bulunurken verilen sayılar asal çarpanlarına ayrılır. Ortak olan asal çarpanlardan büyük olmayan üslülerin çarpımı bu sayıların OBEB’ini verir. Rekürsif fonksiyonlar isimli konu başlığı altında örnek uygulamaya yer verilmiştir.En küçük ortak kat (EKOK) olarak da isimlendirilen OKEK iki ya da daha çok pozitif tam sayının ortak katlarının en küçüğü olan sayıdır. OKEK bulunurken ilk önce, verilen sayılar birlikte asal çarpanlarına ayrılır. Sonra bulunan asal çarpanlar birbirleriyle çarpılarak OKEK bulma işlemi tamamlanır.

Dosyalama İşlemleri

Programda verilerin kalıcı olarak saklanmasının istendiği durumlarda programlama dilindeki hazır kütüphaneler ya da işletim sisteminin özellikleri kullanılarak dosyalama işlemleri yapılabilir. Bu uygulamada klavyeden girilen karakterlerin bir dosyaya yazılmasına dair bir uygulama yapılmıştır. C++ dilinde dosyalama işlemlerini gerçekleştirmek için genellikle hazır kütüphaneler kullanılır. Dosyalama işlemleri temel giriş/çıkış işlemleri arasında yer almaktadır. Bu işlemler Üst Düzey Dosya Giriş/Çıkış ve Alt Düzey Dosya Giriş/Çıkış fonksiyonları kullanılarak yerine getirilebilir. Tablo 1’de dosyalama komutlarına yer verilmiştir. Bir dosyaya erişim sağlanırken genellikle bir kontrol mekanizmasının kullanılması gerekir. “Dosya var mı, yok mu? Erişim sağlanabildi mi?” gibi soruların cevabı işlem yapılmadan önce alınmalıdır. Ayrıca dosyaya erişim amacı, dosya ilk kez erişim sağlanmak istendiğinde belirtilir. Bir dosya hiç yokken oluşturulabilir, sadece okunmak, sadece yazmak ya da hem okuyup hem yazmak için erişim sağlanabilir. Ayrıca bir dosyaya erişim sağlanıp, gerekli işlemler tamamlandıktan sonra dosya mutlaka kapatılmalıdır. Eğer dosyanın kapatılması unutulur ise üzerine başka uygulamalar tarafından veri yazılabilir ya da istenmeyen durumlar oluşabilir. Normal şartlar altında, dosya kapatma işlemi unutulur ise işletim sistemi kapandığında, dosyanın kapatılması işlemi otomatik olarak gerçekleşecektir. Yazılan uygulamada; bir metin dosyasına, kullanıcının klavyeden girdiği tüm karakterler yazılmaktadır. Programdan çıkmak için q karakteri yazıldıktan sonra Enter tuşuna basılması yeterli olacaktır.

Rekürsif Fonksiyonlar

Rekürsif fonksiyon, doğrudan ya da dolaylı olarak bir fonksiyonun kendini çağırması olarak ifade edilir. Bu çalışmada rekürsif fonksiyon tanımı yapılarak bazı uygulama örneklerine yer verilecektir.

Rekürsif fonksiyon, doğrudan ya da dolaylı olarak bir fonksiyonun kendini çağırması olarak ifade edilir. Rekürsif fonksiyonlar, tasarımı kolaylaştırır; ancak, fonksiyon çağırma sayısı ve parametre aktarımı artacağı için bellek alanı gereksinimi de artar. Çünkü her fonksiyonun çağrılmasında ve parametrelerin aktarılmasında yığın (stack) olarak adlandırılan bellek alanı kullanılmaktadır.

Rekürsif fonksiyonlar, permütasyon, hızlı sıralama, fibonnaci sayılarının bulunması gibi algoritmaların gerçekleştirilmesi için son derece uygundur ve çok hızlıdır.

Bu çalışma kapsamında rekürsif fonksiyon tanımı ile:
  1. Faktöriyel Hesabı
  2. Fibonnaci Serisinde Terim Hesaplama
  3. Permütasyon Hesabı
  4. Ortak Bölenlerin En Büyüğü (OBEB) Hesabı
  5. Üst Alma Hesabı
uygulamalarına yer verilmiştir.