نسخة الكود كما يلي:
استيراد java.util.arrays ؛
/**
*تطبيق المكدس <br>
* Author تخطي
* version 1.0
*/
مكدس الفئة العامة <T> {
حجم int الخاص ؛
كائن خاص [] arr ؛ // الصفيف الأساسي
الطول النهائي النهائي الخاص = 200 ؛ // الطول الافتراضي
/**
* لا يوجد بناء معلمة ، تهيئة الصفيف مع الطول الافتراضي
*/
Stack Stack () {
arr = كائن جديد [DefaultLength] ؛
الحجم = 0 ؛
}
/**
* تهيئة الصفيف مع معلمات الطول
* الطول param
*/
المكدس العام (طول int) {
arr = كائن جديد [طول] ؛
الحجم = 0 ؛
}
/**
* أدخل المكدس
* param element data
*/
Public Void Push (T element) {
// هل من الضروري توسيع القدرة
if (size> = arr.length) {
// التوسع Array
ExtendCapacity (Size+1) ؛
}
arr [size ++] = element ؛
}
/**
* من المكدس
* بيانات العودة
*/
suppressWarnings ("غير محدد")
العام t pop () {
// عدد العناصر هو 0 ، ولا يمكن تنفيذ عملية التراص
if (size == 0) {
العودة لاغية.
}
t t = (t) arr [size-1] ؛
arr [-size] = null ؛ // تم إصدار البيانات واستعادتها إلى NULL
العودة ر ؛
}
/**
* امسح المكدس
*/
الفراغ العام clear () {
لـ (int i = 0 ؛ i <size ؛ i ++) {
arr [i] = null ؛
}
الحجم = 0 ؛
}
/**
* احصل على عدد العناصر في المكدس الحالي
* @رجع عدد العناصر
*/
GetSize () {{
حجم العودة
}
/**
* حدد ما إذا كان كومة فارغة
* @العودة الفار
*/
منطقية عامة isempty () {
حجم الإرجاع == 0 ؛
}
/**
* جميع العناصر في مكدس الطباعة
*/
suppressWarnings ("غير محدد")
printstack printstack public void () {
لـ (int i = 0 ؛ i <size ؛ i ++) {
system.out.print (((t) arr [i]). toString ()) ؛
}
System.out.println () ؛
}
/**
* توسيع السعة
* param طول الطول المطلوب
*/
void private ExtendCapacity (طول int) {
// يجب أن يكون طول الصفيف الحالي والطول المطلوب الحد الأقصى
int mincapacity = math.max (arr.length ، length) ؛
// الحكم على ما إذا كان التوسع في القدرات مطلوبًا
if (mincapacity - arr.length> 0) {
// يتم زيادة طول الصفيف بمقدار النصف
int newLength = arr.length + arr.length/2 ؛
// إذا كان الطول الجديد أصغر من المتطلبات ، فاستخدم الطول المطلوب كطول الصفيف
if (newLength <mincapacity) {
NewLength = MinCapacity ؛
}
// لا يمكن أن يتجاوز طول الصفيف integer.max_value
if (newLength> integer.max_value - 8) {
newLength = integer.max_value ؛
}
// التوسع Array
arr = arrays.copyof (arr ، newLength) ؛
}
}
}