إنشاء واجهة لقوائم انتظار الأحرف.
ثلاثة تطبيقات سيتم تطويرها:
قائمة الانتظار الخطية ذات الحجم الثابت.
قائمة الانتظار الدائرية (تعيد استخدام مساحة المصفوفة).
قائمة الانتظار الديناميكية (تنمو حسب الحاجة).
1 قم بإنشاء ملف يسمى ICharQ.java
// واجهة قائمة انتظار الأحرف.
الواجهة العامة ICharQ {
// أدخل حرفًا في قائمة الانتظار.
وضع الفراغ (شار الفصل)؛
// إزالة حرف من قائمة الانتظار.
الحصول على شار ()؛
2 قم بإنشاء ملف يسمى IQDemo.java.
3 ابدأ في إنشاء IQDemo.java عن طريق إضافة فئة FixedQueue الموضحة هنا:
4 أضف فئة CircularQueue الموضحة أدناه إلى IQDemo.java.
عملية قائمة الانتظار الدائرية: إعادة استخدام المساحة المحررة في المصفوفة عند إزالة العناصر، ويمكنها تخزين عدد غير محدود من العناصر، طالما كانت هناك عمليات إزالة.
شروط الحدود: قائمة الانتظار ليست ممتلئة عند الوصول إلى نهاية المصفوفة، ولكن عند استبدال عنصر لم تتم إزالته بعنصر جديد.
يجب أن تتحقق طريقة put() من عدة شروط لتحديد ما إذا كانت قائمة الانتظار ممتلئة.
شروط قائمة الانتظار ممتلئة: قائمة الانتظار ممتلئة إذا: putloc وحدة أصغر من getloc. يوجد putloc في نهاية المصفوفة و getloc في البداية.
حالة قائمة الانتظار الفارغة: قائمة الانتظار فارغة عندما يكون getloc وputloc متساويين.
حجم المصفوفة: يتم إنشاء المصفوفة الأساسية أكبر من حجم قائمة الانتظار بوحدة واحدة لتسهيل عمليات الفحص.
5 أدخل فئة DynQueue الموضحة أدناه في IQDemo.java. إنها تنفذ قائمة انتظار "قابلة للتمديد" تعمل على توسيع حجمها عند نفاد المساحة.
6 لتوضيح التطبيقات الثلاثة لـ ICharQ، أدخل الفئة التالية في IQDemo.java. ويستخدم مرجع ICharQ للوصول إلى كافة قوائم الانتظار.
فئة IQDemo {
الفراغ الثابت العام الرئيسي (String args[]) {
FixedQueue q1 = FixedQueue الجديد(10);
DynQueue q2 = جديد DynQueue(5);
CircularQueue q3 = CircularQueue(10);
ايشار كيو آي كيو؛
شار الفصل؛
كثافة العمليات أنا؛
معدل الذكاء = q1;
// إدراج بعض الأحرف في قائمة الانتظار الثابتة.
ل(i=0; i
iQ.put((شار) ('A' i));
// يعرض قائمة الانتظار.
System.out.print("محتويات قائمة الانتظار الثابتة:");
ل(i=0; i
ch = iQ.get();
System.out.print(ch);
System.out.println();
معدل الذكاء = q2;
// إدراج بعض الأحرف في قائمة الانتظار الديناميكية.
ل(i=0; i
iQ.put((char) ('Z' - i));
// يعرض قائمة الانتظار.
System.out.print("محتويات قائمة الانتظار الديناميكية:");
ل(i=0; i
ch = iQ.get();
System.out.print(ch);
System.out.println();
معدل الذكاء = q3;
// إدراج بعض الأحرف في قائمة الانتظار الدائرية.
ل(i=0; i
iQ.put((شار) ('A' i));
// يعرض قائمة الانتظار.
System.out.print("محتويات قائمة الانتظار الدائرية:");
ل(i=0; i
ch = iQ.get();
System.out.print(ch);
System.out.println();
// أدخل المزيد من الأحرف في قائمة الانتظار الدائرية.
ل(i=10; i
iQ.put((شار) ('A' i));
// يعرض قائمة الانتظار.
System.out.print("محتويات قائمة الانتظار الدائرية:");
ل(i=0; i
ch = iQ.get();
System.out.print(ch);
System.out.println("\nالتخزين والاستهلاك من"
"قائمة الانتظار الدائرية.");
// يخزن ويستهلك العناصر من قائمة الانتظار الدائرية.
ل(i=0; i
iQ.put((شار) ('A' i));
ch = iQ.get();
System.out.print(ch);
7 قم بإنشاء نسخة دائرية من DynQueue. أضف إلى ICharQ طريقة إعادة التعيين () التي تربط قائمة الانتظار. قم بإنشاء طريقة ثابتة لنسخ محتويات نوع قائمة انتظار واحد إلى نوع آخر.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3