DNA Zinciri Eşleştirme

Merhaba arkadaşlar. Bugün Üniversitelerimizin spesifik olarak verdiği bir ödev konusuna değineceğim.

Konumuzun adı DNA zinciri eşleştirme. Çoğunuz özellikle sayısal bir geçmişi herkes zaten bunun ne anlama geldiğini biliyorsunuzdur. Bu yüzden fazla detaya girmeyeceğim.

Peki ödev bizden ne yapmamızı istiyor. Bunu açıklayalım.

Bu ödev; kullanıcının girdiği farklı DNA zincirlerinin eşleşip, eşleşmediğini kontrol edecek. Bu kontrolü bizim yazdığımız bir program sağlayacak.

Bildiğiniz üzere kısaca DNA zincirlerinin üzerinde nükleotitler bulunur. Bu nükleotitler; A (Adenin), T(Timin), G (Guanin), S(Sitozin) ve U(Urasil) dir. Biz urasille ilgilenmeyeceğiz ve toplamda dört tane nükleotidimizin olduğunu varsayacağız.

Bu nükleotitler arasında şöyle bir eşleşme kuralı vardır.

A = T ve G = S

Yani bir zincirde bulunan Adenin’in karşısına başka bir zincirde bulunan Timin geliyorsa bu eşleşme uyumludur Aksi takdirde eşleşme olmaz. Programımızı da bunları dikkate alarak yazmamız gerekiyor.

Programımıza input olarak DNA zincirlerini nükleotitleriyle beraber gireceğiz ve çıktı olarak hangi zincirlerin eşleştiği sonucunu alacağız.

Ben bu programı C dili ile tasarladım tabi ki başka diller ile de tasarlanabilir.

Program kodu

Yığıttan Kuyruğa Veri Aktarımı

Merhaba arkadaşlar. Bu yazımda size veri yapılarının iki önemli yapısı olan yığıt ve kuyruk yapısı arasında veri aktarımının nasıl yapılacağını anlatacağım.

Hatırlatmakda fayda var. Yığıt yapısı sondan erişimlidir. Elemanlar yığıt yapısında sondan eklenir ve sondan çıkarılır. Kuyruk yapısında ise FIFO (First In First Out) mantığı uygulanmaktadır. Yani yığıttan farklı olarak ilk giren her zaman ilk çıkar. Kuyruğa eleman ekleme arkadan, eleman çıkarma ise önden yapılır. Aslında kuyruk yapısını bilet almak isteyen yolcuların oluşturduğu kuyruk olarak da düşünebilirsiniz.

Yığıttan kuyruğa veri aktarımı mantığın dışına çıkmadan şu şekilde anlatılabilir.

İlk önce kuyruğa ekleyeceğimiz yığıt elemanlarını sondan başlayarak teker teker çıkarmalıyız.
Her çıkardığımız eleman için kuyruğa ekleme fonksiyonunu çağırırız. Tabi kuyruğa ekleme fonksiyonumuz da verileri hep kuyruğun arkasından ekleyerek çalışır.
Bu şekilde verileri aktarabiliriz.

Kodunu paylaşacak olursak

Not : .c uzantısı ile derlerken hata alırsanız .cpp uzantısını deneyin.

Yığıt Yapısı

Merhaba arkadaşlar.. Bugün size önemli veri yapılarından biri olan yığıt yapısı hakkında bilgi vereceğim.Bazı kaynaklarda yığın diye geçebilir.

Bilgisayar alanında en kullanışlı yapılardan biri yığıt veri yapısıdır. Yığıt veri yapısı programlamada çok önemli bir yere sahiptir.

Yığın yapısı temel olarak sondan erişimlidir. Yığın yapısına veriler her zaman sondan eklenir ve sondan çıkarılır. Yığın yapısında LIFO(Last In First Out) mantığı işlemektedir. Yani son giren eleman her zaman ilk çıkar.

Üniversitede veri yapıları dersi aldıysanız mutlaka bu konuya aşinasınızdır. Yığın yapısının nerelerde bahsetmek istiyorum. Yazılım uygulamalarında Undo(Geri Al) işlemleri yığıt veri yapısı sayesinde kolayca gerçeklenebilir. En son yaptığımız işlemi geri almamız tam olarak yığıt kullanımını anlatmaktadır. Tarayıcılarda Back butonu ile önceki sayfaya dönme işlemi yığıt veri yapısı ile yapılmaktadır. Yüksek seviyeli bir dilde yazılmış matematiksel ifadelerin makine kodunda işlenmesinde yığıt veri yapısı kullanılmaktadır.

Son olarak bir yığıt yapısına eleman eklemenin C/C++ kodunu paylaşacağım.

Not : .c uzantısı ile derlerken hata alırsanız .cpp uzantısını deneyin.