18
May
2022

Veri yapıları ve algoritmalar dersi 9. slayt – Kuyruk

Slayt ana hatları

Please wait while flipbook is loading. For more related info, FAQs and issues please refer to DearFlip WordPress Flipbook Plugin Help documentation.

Animasyonlu görünüm

#include<iostream>
#include <locale.h>
using namespace std;

// kuyruk veri yapısı
struct queue{
  int boyut;
  int *elemanlar;
  int ust;
};

// Yeni bir kuyruk oluştur
queue* createqueue(int boyut)
{
  queue *kuyruk = new queue;
  kuyruk->boyut = boyut;
  kuyruk->ust = -1;
  kuyruk->elemanlar = new int[boyut];
  return kuyruk;
}

// kuyruk boş mu?
bool isEmpty(queue &kuyruk)
{
  if (kuyruk.ust == -1)
    return true;
  else
    return false;
}

// kuyruk dolu mu?
bool isFull(queue &kuyruk)
{
  if (kuyruk.ust == kuyruk.boyut-1)
    return true;
  else
    return false;
}

// kuyruğa eleman ekle
bool enqueue(queue &kuyruk, int veri)
{
  if (isFull(kuyruk) == false)
  {
    kuyruk.elemanlar[++kuyruk.ust] = veri;
    cout<<kuyruk.elemanlar[kuyruk.ust]<<" eklendi. Yeni üst:"<<kuyruk.ust<<endl;
    return true;
  }
  cout<<"kuyruk dolu";
    return false;
}

// kuyruktan eleman çıkar
bool dequeue(queue &kuyruk) 
{
  if (isEmpty(kuyruk) == false)
  {
    cout<<kuyruk.elemanlar[0]<<" çıkarıldı"<<endl;	   
    for(int i=0;i<=kuyruk.ust;i++)
    {
      
      kuyruk.elemanlar[i] = kuyruk.elemanlar[i+1]; 
    }
    kuyruk.ust--;
    
    
    return true;
  }
  cout<<"kuyruk zaten boş"<<endl;
  return false;	
}

// En üst elemanı yazdır
void peek(queue &kuyruk)
{
  cout<<"En üst eleman: "<<kuyruk.elemanlar[0]<<", en üst indeks: "<<kuyruk.ust<<endl;
}

// Tüm kuyruğu ekrana yazdır
void display(queue  &kuyruk)
{
  if (isEmpty(kuyruk) == false)
  {
    for (int i = 0; i<=kuyruk.ust; i++)
      cout<<kuyruk.elemanlar[i]<<endl;
  }
  else cout<<"kuyruk boş";	
}

main()
{
  setlocale(LC_ALL, "Turkish");
  
  // Baþlangıç adresi kuyruk olan 10 elemanlı bir integer kuyruğu oluştur
  queue *kuyruk = createqueue(10);
  
  // kuyruk dolu mu?
  //cout<<isEmpty(*kuyruk);
  
  // kuyruk boş mu?
  //cout<<isFull(*kuyruk);
  
  // Ekleme
  enqueue(*kuyruk, 23);
  enqueue(*kuyruk, 21);
  enqueue(*kuyruk, 13);
  enqueue(*kuyruk, 3);
  enqueue(*kuyruk, 11);
  enqueue(*kuyruk, 15);
  
  display(*kuyruk);
  
  dequeue(*kuyruk);
  dequeue(*kuyruk);
  peek(*kuyruk);
  dequeue(*kuyruk);
  dequeue(*kuyruk);
  dequeue(*kuyruk);
  dequeue(*kuyruk);
  dequeue(*kuyruk);
  dequeue(*kuyruk);
}

 

%d blogcu bunu beğendi: