Site icon IT Tutorial

YIĞIN (STACK) VERİ YAPISI (PUSH POP)

Veri yapılarının önemli konularından biriside YIĞIN (STACK) veri yapısıdır.Yığın veri yapısı üst üste koyulan tabaklar mantığıyla çalışır ilk çektiğimiz son koyduğumuz tabaktır aslında bundan da anlaşılacağı üzere Stack son giren ilk çıkar yani LIFO mantığıyla çalışır.Burda herbir eleman için bir Node (düğüm) oluşturarak Class yapısının içinde kullandım ve her elemanı önce ittim (PUSH) Yığına sonra da çektim (POP) çektim Stacktan.Şimdi Bunun gerçeklemesini görelim..

Görüldüğü üzere Stack a 19 tane eleman attık çektiğimizde ilk olarak en son koyduklarımız göründü.silerkende yine en son koyduklarımız silindi

#include<iostream>
 using namespace std;
class Node {
            public:
            Node();
      
            int data;
            Node *NEXT;
            };
           
    Node::Node()
    {
       this->data=0;                    
       this->NEXT=NULL;        
    }       
class Stack {
             public:
             Stack();
             void push(int);
             void pop();
             void print()const;
            
             private:
                     Node *top;
                     int counter;
             };
  Stack::Stack()
   {
      this->top=NULL;                        
      this->counter=0;
   }         
  
   void Stack::push(int A)
   {
      Node *p=new Node;      
      p->data=A;
               if(top==NULL)
                {
                    p->NEXT=top;                   
                    top=p;       
                }  
               else
               {
                   p->NEXT=top;  
                   top=p;
                  
               }                         
        counter++;
       
   }
  void Stack::pop()
   {
      Node *p;      
      p=top;
      top=top->NEXT;
     
      cout<<"SILINEN elemanlar:"<<p->data<<endl;
      delete p; 
      counter--; 
   }
  
   void Stack::print()const
   {
      Node *p=top;      
     
      while(p->NEXT!=NULL)
      {
            cout<<p->data<<"  ";                                 
            p=p->NEXT;            
      } 
        cout<<endl;
   }
  
   main()
   {
        Stack S;
        for(int i=0;i<20;i++)
        S.push(i);
        S.print();
       
        for(int j=0;j<10;j++)
        S.pop();
        S.print();
   system ("pause");     
   }

MEHMET SALİH DEVECİ

 

Exit mobile version