• data dersinden hatırladığım kadarıyla yapısı, circular queue yapısı ile benzerdir. yani circular queueları kullanarak bir priortiy queue elde edebilirsiniz. tek yapmanız gereken kaç tane priority level açacağınızı belirlemek ve o kadar circular queue oluşturmak.
    bu arada two dimensional array kullanarak bu circular queuelar'ı birleştirebilirsiniz ve programı az buçuk kısaltabilirsiniz... örneğin 5 tane priority level'ımız ve her level için 10 elemanlık yerimiz olsun.
    priority[5][10] tadında birşey ile tanımlayabiliriz mesela...
    atlanılmaması gereken en önemli noktalardan birisi ise "işlem, her zaman en yüksek priority level dan, yani 1' den başlar ve o level da eğer ki eleman var ise, o level'a ilk girilen eleman ilk önce işleme alınır ve bu böyle devam eder. bu ayrıntıyı aklınızda tutup; az buçuk programlama bilgisiyle kendinize ait basit bir priority queue oluşturabilirsiniz. afiyet olsun.
  • genelde heap veri yapısı taban alınarak kodlanır.
  • greedy algorithm implementasyonlarında kullanılmaya musait bir veri yapısı.
  • standard bir queue fifo (bkz: first-in-first-out) mantığına göre çalışırken, priority queue gelen datanın/değerin önceliğine göre çalışır.

    bunu 5 taneden az ürünle sıraya girene öncelik verildiği bir market sırası gibi düşünebilirsiniz. sıraya ilk gelen, parasını ödeyip ilk ayrılan olucaktır. ancak sıraya sadece tek bir ürün alan almış bir adam geldiğinde, kendisi sıranın başına geçecektir kural gereği ve marketten ilk ayrılan o olucaktır. işte priority queue mantığı da bu mantıkla çalışır.
  • fibonacci heap kullanılarak oluşturulmuş queue, o(logn) sürede gerçekleşen decreasekey ve o(n) sürede gerçekleşen merge işlemlerini o(1)'e indirger.

    büyük miktardaki veriyi tutmak ve hızlıca erişmek için çok uygun bir veri yapısıdır.
hesabın var mı? giriş yap