if (++count > size) throw new Exception("queue is full") queue[tail++] = input; if (tail == size) tail = 0;
سلام این قسمت از برنامه یه خطای منطقی از دید من دارد لطفا راهنمایی بفرمایید:
وقتی که به انتهای صف برسیم if tail == size برای اینکه عملیات دوبار ه از سر صف انجام شود tail را صفر میکند و چون tail صفر شده منطق این است دوباره بتوان از سر صف نوشت و اصلا دلیل صفر شدن ان هم همین است در ادامه دوباره به ایتدای شرط if بر میگردد ولی اینجا خطای ی پر شدن صف را میدهد و برنامه متوقف میشود و عمل بازنویسی صورت نمیگیرد حالا به نظر من یا نباید خطا را میدادیم و یا نباید tail را صفر میکردیم و یا اگر خطا دادیم باید طوری مدیریت میکردیم که برنامه متوقف نشود و دوباره از ابتدای صف قابلیت باز نویسی صورت بگیرد.همین اقدام برای متد بعد هم صورت میگیرد.