Queue (Sıra) kodlaması ve Dizi (Array) kullanımı (Veri Yapıları 9.2)

Sdílet
Vložit
  • čas přidán 7. 09. 2024
  • Veri Yapıları altında, Soyut veri tipi (abstract data type) olan sıra (queue) için enqueue ve dequeue fonksiyonlarının dizi (array) üzerinde kodlanmasıve bu sırada yaşanan problemlerin çözümü. C dili ile kod geliştirilmesi.

Komentáře • 32

  • @thisisspac
    @thisisspac Před 6 lety +17

    Şadi Hocanın Anlattığı kod arkadaşlar :
    #include
    #include
    int *array = NULL; // Neden null ?
    int first=0, last=0, size=2;
    int dequeue(){ // Eleman çıkarma
    if(last==first){
    printf("Queue is empty");
    return -1;
    }
    if(last-first

  • @salihacur3201
    @salihacur3201 Před 4 lety +3

    Hocam sizi izlemediğim gün kötü geçiyor. Her videoda değerli bilgilerinizden faydalanıyorum. Elinize sağlık :D

  • @volkan540
    @volkan540 Před 6 lety +19

    28:16 video dondu zannetim :D

  • @muhammedyalcnkuru3744
    @muhammedyalcnkuru3744 Před 7 lety

    Hocam ellerinize sagilik algorithm videolari gibi veri yapilari videolarida muazzam olmus.

  • @mustafafirtina4095
    @mustafafirtina4095 Před 7 lety

    Öncelikle çoğu videonuzu severek izledim.Bu videoda kendi üni hocalarımdan ogrendıgım birşeyi eklemek istiyorum. Dizinin eleman sayısını yukseltmedıgımız durumlarda da deque edılmıs yerlerdeki boşlukları da kullanmak için şu yöntem kullanılabilinir. Sıra başı ve Sıra şuanki dizinin boyutu -1 ; olarak tanımlanır. enque de ise: sıra =( sıra+1) % suankidiziboyutu; dizi[sira] = eklenicekdeger; olarak tanımlanır. deque de ise sırabaşı=(sırabaşı+1) %suankidiziboyutu; olarak tanımlanır.

  • @yusraazrademirel2195
    @yusraazrademirel2195 Před rokem +1

    hocam hiçbir şey anlamadım ama teşekkürler sorun bende maalesef

  • @ibrahimarslan7699
    @ibrahimarslan7699 Před 4 lety +1

    toparla fonksıyonunda for dongusunde boyut yerıne sira-1 e kadar gıtmesı daha mantıklı degıl mı ? sonucta dızı tam dolu olmadıgında boyuta kadar gıttıgınde gereksız yere ıslem yapmıs oluyor

  • @ahmetcok7201
    @ahmetcok7201 Před 6 lety +4

    kolay gelsin hocam toparla fonsiyonunu deque nun icine yazsak her deque edişinde diziyi toparlasa daha kolay olabilir mi ?

    • @berkencan33
      @berkencan33 Před 3 lety

      belli aralıklarla toplarla yazmak yerine, hızdan kaybetsek bile, her deque de elemanları 1 sola kaydırıp sırayı bir azaltırsak hiç boşluk olmamış olur. daha sağlam olur

    • @kamersaidmor
      @kamersaidmor Před 2 lety

      @@berkencan33 Verim açısından zararı olabileceğini düşünüyorum. Gerektiği anlarda çağırmak daha verimli olur. Her deque'da 20 elemanı bir sağa kaydırmak yerine dizi sınırına yaklaştığında 20 elemanı 5 adım oynatmak daha az iş yükü oluşturur. Bu dediğim de kontrol edilirse şart sağlandığı anda kod çalışmış olur.

  • @sevketkarayilan
    @sevketkarayilan Před 9 měsíci

    Merhaba hocam. Eğer iki timer kullanılsa ve bu iki timer'dan biri bilgi geldiğinde enque() , ötekide bilgi geldiğinde deque() yi çalıştırsa. bu iki fonksiyonun aynı anda çalışma ihtimali doğar. Aynı anda çalışma halinde bile yazdığınız kod sırayı karıştırmadan tutar mı?

  • @pehambey7145
    @pehambey7145 Před 2 lety

    Şeyi tam kavrayamadım : Neden iki katına çıkarıyoruz ? Daha kolay bir şekilde yer açalım diye mi ? İstesek 10 luk yer ayırabilir miyiz ? Biz istediğimizi değil de 2 ' nin katlarını ayırabiliyoruz ...

  • @ahmetcevahircinar5699
    @ahmetcevahircinar5699 Před 7 lety

    Teşekkürler.

  • @mertcankose5079
    @mertcankose5079 Před 4 lety

    Hocam merhaba sizin malloc ile yaptığınız şeyi biz derste circular queue ile yaptık bu ikisi benzer şeyler mi? Birbirlerinin yerlerine kullanılabilir mi? Teşekkür ederim.

  • @drivingless
    @drivingless Před 5 lety +4

    Olum aslında düşününce kolay lan :D

  • @miraturan9653
    @miraturan9653 Před 6 lety

    merhaba hocam.diziyi silme işlemini heap te yaparsak kod tasarrufu sağlanırmı?

  • @kamersaidmor
    @kamersaidmor Před 2 lety

    Hocam toparla fonksiyonunda bir segmentasyon hatası beklemiştim açıkçası ama yaşanmadı. Toparla içindeki for döngüsünde özellikle dizi[i + sirabasi] kısmında indis dizi boyutunu aşmıyor mu? Bu noktada C üzerinde bir kontrol yok mu acaba?

    • @asafdemir1696
      @asafdemir1696 Před rokem

      Aynı hatayı ben de bekledim ama hata çıkmadı, o kısıma anlam veremedim.

  • @WTIReaLMeNl
    @WTIReaLMeNl Před 4 lety

    Hocam bizim dersimizde de hocamız aynı bu şekil bellekte boyut*2 kadar yer açtırıyordu ama bu belleği gereksiz işgal etmez mi ? Misal (int*)malloc(sizeof(int)*boyut) desek enque yapmadan önce boyut++ yapsak daha doğru olmazmı bu sayede her eleman eklediğimizde onun boyutu kadar yer açılır ve bellekten tasarruf edilir deque işleminde de aynı şekilde boyut-- yapabiliriz ?

    • @mustafakarakas1116
      @mustafakarakas1116 Před 4 lety

      Her eleman eklendiğinde kopyalama yapacağımız için bu seferde zamandan kaybederiz dostum , şimdi boyut/2 tane eleman eklenince yeni yer açılıp kopyalama işlemi yapılıyor

    • @mertpehlivan3663
      @mertpehlivan3663 Před 2 lety

      @@mustafakarakas1116 Eyvallah , güzel bir açıklama olmuş bende neden 2 ile çarptığımızı düşünüyordum.

    • @mustafakarakas1116
      @mustafakarakas1116 Před 2 lety

      @@mertpehlivan3663 kolay gelsin hocam

  • @yazicib1
    @yazicib1 Před 4 lety

    Bence queue kelimesini “kuyruk” diye çevirmek lazım. Kuyruğa girmek gibi

  • @hakan1321
    @hakan1321 Před 7 lety

    merhabalar hocam ,diziyi 2 katına çıkarmadan başka kullanılabilecek önerileriniz var mı ödev maksatında uğraşabileceğimiz?

    • @Sadievrenseker_BK
      @Sadievrenseker_BK  Před 7 lety +6

      diziyi sabit boyutlu hafıza ayırma (memory allocation) olarak kabul ettiğimiz için sonuçta veri büyüdükçe daha büyük bir veri yapısına geçmeniz gerekiyor. Bu noktada istatistiksel bazı yaklaşımlar kullanılabilir ama bence bunlarla uğraşmayın. Amacınız veri yapılarında uygulama yazmaksa, gerçek projeler yapın. Mesela ben bu dersi alırken benim projem solitaire yazmaktı. 52 kağıttan oluşan bir desteyi solitaire oyunundaki gibi veri yapılarında tutup oynatmaya izin veren bir sistem geliştirin derim.
      Başarılar dilerim.

    • @berkencan33
      @berkencan33 Před 3 lety

      diziye sadece bir eleman eklersek nasıl olur. her bir datanın boyutuna bakarak, onu eklemek ?
      diziyi küçültürken de null gördüğü yerden sonrayı almamak, yani her seferinde dizinin boyutunu eleman sayısı kadar tutmak . zaman açısından kötü, hafıza açısından en iyi sonuç olur bence.

  • @kanszorh246
    @kanszorh246 Před 7 lety

    Hocam normalde c dilinde for döngüsünde "int i = 0" ifadesini kullana mıyoz ama siz kullandınız. ??

    • @Sadievrenseker_BK
      @Sadievrenseker_BK  Před 7 lety +2

      evet C90 standartlarına aykırı, bir iki videomuzdan bundan bahsettik. Kullandığımız derleyicilerin çoğu C++ da desteklediği için arada böyle şeyler kaçıyor :) Yani bu videoların amacı katı bir C kodlaması anlatmak değil, daha çok veri yapıları kavramlarını anlatmak olduğu için biraz esnek olarak kodladım, mesela aynı kodları çok ufak değişikliklerle C++ için de kullanabilirsiniz.

  • @Soccer.Wolf0
    @Soccer.Wolf0 Před 2 lety

    29:23