a) Bir bankaya sabahleyin gelmiş olan N kişinin, geliş sıralarına göre kuyruk oluşturduklarını varsayın. Her birinin işleminin 30 saniye ile 300 sn. arasında random bir zaman aldığını varsayın. Her bir banka müşterisine numara vererek ve her birine random birer işlem süresi atayarak N elemanlı bir kuyruk oluşturunuz. Her bir müşterinin işi biterek kuyruktan çıkarıldığında işlem tamamlanma süresini (işlem süresi dâhil ne kadar süre kuyrukta kaldığını) liste halinde yazdırınız. Ayrıca, N adet müşteri için ortalama işlem tamamlanma süresini de hesaplayıp yazdırınız.
b) Aynı işlemi aynı değerleri kullanarak öncelikli kuyruk için tekrarlayınız. Kuyruğu, işlem süresi en kısa olan müşteri ilk (öncelikli) olarak hizmet alacak şekilde tasarlayınız (kuyruk, elemanları küçükten büyüğe sıralı tutacak). Her bir müşteri, işi biterek kuyruktan çıkarıldığında işlem tamamlanma süresini liste halinde yazdırınız. Ayrıca, N müşteri için ortalama işlem tamamlanma süresini de hesaplayıp yazdırınız. Bu yapıda, hangi müşterilerin FIFO kuyruğa göre, daha fazla beklediğini listeleyiniz (işlem süreleri ve sıra numaraları ile).
Bu problem için 2 ayrı program yazınız:
Program1: Problemin a-şıkkındaki açıklamalara göre gerçekleştireceğiniz programda kullanacağınız kuyruk veri yapısını ve ilgili fonksiyonları bağlı liste yapısı kurarak gerçekleştiriniz.
Program2: Problemin a-şıkkındaki açıklamalara göre gerçekleştireceğiniz programda kullanacağınız kuyruk veri yapısını ve ilgili fonksiyonları sabit boyutlu dizi yapısı kurarak gerçekleştiriniz.