NİŞANTAŞI ÜNİVERSİTESİ

Slides:



Advertisements
Benzer bir sunumlar
Yığınlama Sıralaması (Heap Sort)
Advertisements

Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Yığın ve Kuyruk.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Nesneye Yönelik Programlama
Siber Güvenlik Danışmanı
Nesneye Dayalı Programlama
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Veri Yapıları ve Algoritmalar dönem
Öğrt.Gör.Dr. Ahmet Cengizhan Dirican GYTE – Bilgisayar Mühendisliği
C++ STACK SINIFI.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Java Programlama Koleksiyon(Collection) Sınıfları
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA
Fonksiyonlar.
Veri Yapıları Ve Algoritmalar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
Nesneye Yönelik Programlama
Metotlar.
P p 5. Bolum en cok kullanilan veri yapilarindan biri olan listeleri anlatmaktadir. p p Bu sunum da listeler uzerinde en cok yapilan islemleri aciklamaktadir.
Veri Yapıları Yrd. Doç. Dr. Altan MESUT.
Kalıtım , Sınıf Asli Ergün.
Fonksiyonlar Fonksiyon Tanımı
Nesneye Dayalı Programlama
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN.
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Veri Yapıları.
Veri yapıları Hafta3 Dizi Yapıları.
KUYRUK (QUEUE).
Yığıt Soyut Veri Tipi (Stack ADT) Yığıt Veri Yapısı
Temel Veri Yapıları Veri Yapıları 1. Bölüm 1. 2 Programlarımızda tanımladığımız nesneler ya tek parçadan ya da birden fazla parçadan oluşurlar. Tek parçadan.
Fonksiyonlar ve Diziler
8086 Programlama – Kısım IV Stack’ler, Makro’lar
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

NİŞANTAŞI ÜNİVERSİTESİ Veri Yapıları ve Algoritmalar DERS 5 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr

YBLG202 Veri Yapıları ve Algoritmalar DERS 5 YIĞIN (STACK) NİŞANTAŞI ÜNİVERSİTESİ ©

NİŞANTAŞI ÜNİVERSİTESİ © YIĞIN YIĞIN (STACK) Nesne ekleme ve cıkarmalarının en ustten (top) yapıldığı veri yapısına stack (yığın) adı verilir. Soyut bir veri tipidir. Bazı kaynaklarda yığıt, nadiren çıkın olarak da isimlendirilir. Bir nesne ekleneceği zaman yığının en ustune konulur. Bir nesne cıkarılacağı zaman da yığının en ustundeki nesne cıkarılır. Bu cıkarılan nesne, yığının elemanlarının icindeki en son eklenen nesnedir. Yani bir yığındaki elemanlardan sadece en son eklenene erişim yapılır. Bu nedenle yığınlara LIFO (Last In First Out: Son giren ilk çıkar) listesi de denilir. Mantıksal yapısı bir konteyner gibi duşunulebilir. #define STACK_SIZE 4 typedef struct { int data[STACK_SIZE]; int top; }stack; NİŞANTAŞI ÜNİVERSİTESİ ©

NİŞANTAŞI ÜNİVERSİTESİ © YIĞIN YIĞIN (STACK) Eleman Ekleme İşlemi (push) Bir stack’e eleman ekleme fonksiyonu push olarak bilinir ve bu fonksiyon, stack’i ve eklenecek elemanın değerini parametre olarak alır. Geri donuş değeri olmayacağı icin turu void olmalıdır. Ayrıca eleman ekleyebilmek için yığının dolu olmaması gerekir. void push(stack *stk, int c) { if(!isfull(stk)) { struct node *temp = (struct node *)malloc(sizeof(struct node)); /* struct node *temp = new node(); // C++’ta bu şekilde */ temp -> data = c; temp -> next = stk -> top; stk -> top = temp; stk -> cnt++; }e lse printf("Stack dolu\n"); } NİŞANTAŞI ÜNİVERSİTESİ ©

NİŞANTAŞI ÜNİVERSİTESİ © YIĞIN YIĞIN (STACK) Eleman Çıkarma İşlemi (pop) pop fonksiyonu olarak bilinir. Son giren elemanı cıkarmak demektir. Cıkarılan elemanın indis değeriyle geri doneceği icin fonksiyonun tipi int olmalıdır. int pop(stack *stk) { if(!isEmpty(stk)) { // stack boş değilse struct node *temp = stk -> top; stk -> top = stk -> top -> next; int x = temp -> data; free(temp); stk -> cnt--; return x; } NİŞANTAŞI ÜNİVERSİTESİ ©

NİŞANTAŞI ÜNİVERSİTESİ © YIĞIN YIĞIN (STACK) En Üstteki Verisini Bulmak (top) stack boş değilse en ustteki duğumun verisini geri donduren bir fonksiyondur. Geri donuş değeri turu, verinin turuyle aynı olmalıdır. int top(stack *stk) { if(!isEmpty(stk)) return(stk -> top -> data); Stack’ler Bilgisayar Dünyasında Nerelerde Kullanılır? Yığın mantığı bilgisayar donanım ve yazılım uygulamalarında yaygın olarak kullanılmaktadır. Bunlardan bazıları; - Rekursif olarak tanımlanan bir fonksiyon calışırken hafıza kullanımı bu yontem ile ele alınır, - (, {, [, ], }, ) ayıraclarının C/C++ derleyicisinin kontrollerinde, - postfix → infix donuşturmelerinde, - Yazılım uygulamalarındaki Parsing ve Undo işlemlerinde, - Web browser’lardaki Back butonu (önceki sayfaya) uygulamasında, - Ayrıca, mikroişlemcinin icyapısında stack adı verilen ozel hafıza alanı ile mikroişlemci arasında, bazı program komutları ile (push ve pop gibi), bir takım işlemlerde (alt program çağırma ve kesmeler gibi), veri transferi gercekleşir. Mikroişlemcinin icinde, hafızadaki bu ozel alanı gosteren bir yığın işaretcisi (Stack Pointer –SP) bulunur. Stack Pointer o anda bellekte calışılan bolgenin adresini tutar. push fonksiyonu, stack’e veri gondermede (yazmada), pop fonksiyonu ise bu bolgeden veri almada (okumada) kullanılır. NİŞANTAŞI ÜNİVERSİTESİ ©

YBLG202 Veri Yapıları ve Algoritmalar Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©

NİŞANTAŞI ÜNİVERSİTESİ © KAYNAKÇA M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc., 2011 Hakan Kutucu, VERİ YAPILARI, Karabük Üniversitesi Mühendislik fakültesi, 2014 Data Structures and Algorithms, TutorialPoints, NİŞANTAŞI ÜNİVERSİTESİ ©