Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Genel Programlama

Genel Programlama Programlamanın temeliyle ilgili genel dökümanların paylaşım alanı.




Stack/Queue [Ar-GE Kulübü

Genel Programlama

Yeni Konu aç Cevapla
 
Seçenekler
Alt 14-11-2018 23:37   #1
  • Binbaşı
  • Üye Bilgileri
Üyelik tarihi
10/2015
Nereden
Python
Mesajlar
Konular

Teşekkür (Etti): 62
Teşekkür (Aldı): 239


Stack/Queue [Ar-GE Kulübü



Veri yapıları dersine devam ediyoruz.

Basitçe tanımlarsak elimizdeki verilerimizi koyabileceğimiz,ekleme çıkarma yapabileceğimiz yapılardır stackler.

Bir çukur düşünün, evimizdeki eski eşyaları oraya atıyoruz. İlk attığımız eşyanın eski bir radyo, son attığımız eşyanın ise masa olduğunu düşünün. Radyo yu geri çıkarmamız için önce masayı çıkartmamız gerekir. Veya şuanda bu yazıyı okuyorsunuz, ilginizi çekmedi ve geri butonuna bastınız. Bu geri butonuna tekrar basarsanız ondan önceki sayfalara gitmeye başlar. İşte tarayıcı bu adresleri stacklerde tutabilir.

Stackler ekleme çıkarma işlemleri her zaman aynı yerden yapılan yapılardır.


Kod:
Ekleme ve çıkarma işlemleri stack in top kısmından yapılır.
(Çukur örneği)
Kod:
Stacklerde ilk giren son çıkar mantığı ile çalışır.

Kod:
3 Temel fonksiyonu vardır;

Push:Eleman ekleme
Pop:Eleman çıkarma
Top:En tepedeki eleman

Kod:
class Stack:
    def __init__(self):
        self.items = []
        
    def isEmpty(self):
        
        return self.items ==[] #False or True?
    def push(self,item):
        self.items.append(item)
        
    def pop(self):
        return self.items.pop()
    
    def top(self):
        return self.items[len(self.items)-1] # f(0) = first index
    def size(self):
        return(len(self.items))

Kod:
Depo = Stack()

Depo.isEmpty()
Out[19]: True

Depo.push("First Index")

Depo.push("Second Index")

Depo.top()
Out[22]: 'Second Index'

Depo.size()
Out[23]: 2

Depo.pop()
Out[24]: 'Second Index'

Depo.top()
Out[25]: 'First Index'



Queues

Bunuda çukur yerine boru gibi düşünebiliriz. Borudan ilk giren ilk çıkar.

Kod:
"rear" kısmından veri ekleriz ve "front" kısmından veri çıkartırız.
İlk giren ilk çıkar. (FIFO , first in first out yada first come first served)
Kod:
class Queue:
    
    def __init__(self):
        """
        initialize (constructor)
        """
        self.items = []
        
    def isEmpty(self):
        """
        bos olup olmadigini kontrol et
        """
        return self.items == [] # bool operation
    
    def enqueue(self,item):
        """
        queue item ekler
        """
        self.items.insert(0,item)
        
    def dequeue(self):
        """
        queue dan item cikartir
        """
        return self.items.pop()
    
    def size(self):
        """
        length of items(queue)
        """
        return len(self.items)

Kod:
depo2 = Queue()

depo2.isEmpty()
Out[42]: True

depo2.enqueue("Firt Index")

depo2.size()
Out[44]: 1

depo2.enqueue("Second Index")

depo2.size()
Out[46]: 2

depo2.dequeue()
Out[47]: 'Firt Index'

depo2.size()
Out[48]: 1



___________________________________________





İşletim SistemiLinux Mint Cinnamon 18.03

Ekran Kartı : Nvida GT840M

İşlemci
Intel® Core™ i3-5005U İşlemci
3M Önbellek, 2,00 GHz


Konu AngelRayt tarafından (14-11-2018 23:39 Saat 23:39 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
Alt 14-11-2018 23:55   #2
  • Sosyal Medya Timi Asistanı
  • Üye Bilgileri
Üyelik tarihi
06/2017
Nereden
Türkiye
Mesajlar
Konular

Teşekkür (Etti): 7084
Teşekkür (Aldı): 882




Maalesef anldıgım bir konu değil. Hocam biraz renk menk ekleseydiniz aslında daha iyi olurdu. Ama tabii ki emek var. Ellerinize sağlık



___________________________________________

 Online  
 
Alıntı ile Cevapla
Alt 15-11-2018 00:07   #3
  • Yüzbaşı
  • Üye Bilgileri
Üyelik tarihi
02/2013
Nereden
cos a=cos bc
Mesajlar
Konular

Teşekkür (Etti): 111
Teşekkür (Aldı): 239




Alıntı:
M3m0ry´isimli üyeden Alıntı Mesajı göster
Maalesef anldıgım bir konu değil. Hocam biraz renk menk ekleseydiniz aslında daha iyi olurdu. Ama tabii ki emek var. Ellerinize sağlık
Stack heap vs bunlar pythonla alakası olmayan durumlar ilk önce onları anlamaya başlamak daha doğru olacaktır



___________________________________________


Bilmediklerimi ayaklarımın altına alsaydım, başım göğe ererdi.

 Offline  
 
Alıntı ile Cevapla
Alt 15-11-2018 00:27   #4
  • Binbaşı
  • Üye Bilgileri
Üyelik tarihi
10/2015
Nereden
Python
Mesajlar
Konular

Teşekkür (Etti): 62
Teşekkür (Aldı): 239




@ArViX

Evet, c-like ile anlatmam daha doğru olacak. Bir daha ki konular C like ile gelecek.

Oradaki program kodlarını sadece mantık biraz daha iyi anlaşılsın diye ekledim.



___________________________________________





İşletim SistemiLinux Mint Cinnamon 18.03

Ekran Kartı : Nvida GT840M

İşlemci
Intel® Core™ i3-5005U İşlemci
3M Önbellek, 2,00 GHz

 Offline  
 
Alıntı ile Cevapla
Alt 15-11-2018 01:02   #5
  • Binbaşı
  • Üye Bilgileri
Üyelik tarihi
04/2014
Nereden
el psy congr
Yaş
21
Mesajlar
Konular

Teşekkür (Etti): 191
Teşekkür (Aldı): 315




Alıntı:
AngelRayt´isimli üyeden Alıntı Mesajı göster
Veri yapıları dersine devam ediyoruz.

Basitçe tanımlarsak elimizdeki verilerimizi koyabileceğimiz,ekleme çıkarma yapabileceğimiz yapılardır stackler.

Bir çukur düşünün, evimizdeki eski eşyaları oraya atıyoruz. İlk attığımız eşyanın eski bir radyo, son attığımız eşyanın ise masa olduğunu düşünün. Radyo yu geri çıkarmamız için önce masayı çıkartmamız gerekir. Veya şuanda bu yazıyı okuyorsunuz, ilginizi çekmedi ve geri butonuna bastınız. Bu geri butonuna tekrar basarsanız ondan önceki sayfalara gitmeye başlar. İşte tarayıcı bu adresleri stacklerde tutabilir.

Stackler ekleme çıkarma işlemleri her zaman aynı yerden yapılan yapılardır.


Kod:
Ekleme ve çıkarma işlemleri stack in top kısmından yapılır.
(Çukur örneği)
Kod:
Stacklerde ilk giren son çıkar mantığı ile çalışır.

Kod:
3 Temel fonksiyonu vardır;

Push:Eleman ekleme
Pop:Eleman çıkarma
Top:En tepedeki eleman

Kod:
class Stack:
    def __init__(self):
        self.items = []
        
    def isEmpty(self):
        
        return self.items ==[] #False or True?
    def push(self,item):
        self.items.append(item)
        
    def pop(self):
        return self.items.pop()
    
    def top(self):
        return self.items[len(self.items)-1] # f(0) = first index
    def size(self):
        return(len(self.items))

Kod:
Depo = Stack()

Depo.isEmpty()
Out[19]: True

Depo.push("First Index")

Depo.push("Second Index")

Depo.top()
Out[22]: 'Second Index'

Depo.size()
Out[23]: 2

Depo.pop()
Out[24]: 'Second Index'

Depo.top()
Out[25]: 'First Index'



Queues

Bunuda çukur yerine boru gibi düşünebiliriz. Borudan ilk giren ilk çıkar.

Kod:
"rear" kısmından veri ekleriz ve "front" kısmından veri çıkartırız.
İlk giren ilk çıkar. (FIFO , first in first out yada first come first served)
Kod:
class Queue:
    
    def __init__(self):
        """
        initialize (constructor)
        """
        self.items = []
        
    def isEmpty(self):
        """
        bos olup olmadigini kontrol et
        """
        return self.items == [] # bool operation
    
    def enqueue(self,item):
        """
        queue item ekler
        """
        self.items.insert(0,item)
        
    def dequeue(self):
        """
        queue dan item cikartir
        """
        return self.items.pop()
    
    def size(self):
        """
        length of items(queue)
        """
        return len(self.items)

Kod:
depo2 = Queue()

depo2.isEmpty()
Out[42]: True

depo2.enqueue("Firt Index")

depo2.size()
Out[44]: 1

depo2.enqueue("Second Index")

depo2.size()
Out[46]: 2

depo2.dequeue()
Out[47]: 'Firt Index'

depo2.size()
Out[48]: 1
Ellerine saglik bir kac ornek proje vsde ekleybilirsin oldukca faydali olmus.



___________________________________________

asdasdasdasrtewter

 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2019

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+

web tasarım

wau