: (المكدس) المعروف أيضًا باسم المكدس، وهو جدول خطي ذو عمليات محدودة. اتبع آخر ما يدخل أولاً يخرج (LIFO)
أعلى المكدس : قائمة خطية تقيد عمليات الإدراج والحذف فقط في نهاية الجدول، وأسفل
المكدس : قائمة خطية تقيد عمليات الإدراج والحذف فقط إلى الرأس.
الدفع : يُطلق على إدراج عنصر جديد في المكدس أيضًا اسم الدفع أو الدفع أو الدفع، وهو وضع العنصر الجديد أعلى العنصر العلوي للمكدس، مما يجعله العنصر العلوي الجديد للمكدس
: الحذف من a يُطلق على عنصر المكدس أيضًا اسم "الظهور أو الخروج من المكدس". فهو يحذف العنصر العلوي من المكدس ويجعل العناصر المجاورة له تصبح العنصر العلوي الجديد في المكدس.
ماهية التوجه نحو العملية:
التوجه نحو العملية هو تحليل خطوات حل المشكلة
ثم استخدام الوظائف
لتنفيذها، ما عليك سوى تنفيذها واستدعاءها خطوة بخطوة.
- يضيف الدفع (العنصر ) عنصرًا واحدًا أو أكثر إلى أعلى المكدس
- ، يحذف البوب () العنصر العلوي ويعيد
- نظرة خاطفة على العنصر الذي تمت إزالته () ويعيد العنصر الموجود أعلى المكدس
- isEmpty () هو يستخدم لتحديد ما إذا كانت المكدس فارغة أم لا.
- يتم استخدام Clear () لمسح عناصر المكدس
- () لإرجاع عدد العناصر الموجودة في المكدس
قبل تنفيذها كيف ننفذها
أولاً، قمنا باستعارة طريقة المصفوفة لتنفيذها، لذلك نحتاج إلى إنشاء
مصفوفة فارغة لمحاكاة المكدس
لإنشاء فصل، واستخدام مصفوفة لمحاكاته، وكتابة
أساليب مختلفة في الفصل
لاستدعاء طريقة المصفوفة جزئيًا.
بشكل عام، طريقة استخدام فئة لتغليف
مصفوفة هي تحقيق محاكاة
فئة المكدس Stack { منشئ () { هذا العنصر = [] } دفع (عنصر) { this.item.push(العنصر) } البوب () { إرجاع this.item.pop() } نظرة خاطفة () { إرجاع هذا.العنصر[this.item.length - 1] } فارغ () { إرجاع this.item.length === 0 } واضح() { هذا العنصر = [] مقاس() { إرجاع this.item.length } } // إنشاء مثيل لفئة المكدس const stack = new Stack() مكدس.دفع(4) المكدس.push(6) console.log(stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty())
نتائج
Console.log(stack.size()):
الشيئي:
وهو تحليل الأشياء التي تبني المشكلة إلى عدة كائنات ،
ولا يتم إنشاء الكائن لإكمال خطوة معينة، بل
لوصف سلوك شيء ما في عملية حل المشكلة.
- يضيف الدفع (العنصر ) عنصرًا واحدًا أو أكثر إلى أعلى المكدس
- ، يحذف البوب () العنصر العلوي ويعيد
- نظرة خاطفة على العنصر الذي تمت إزالته () ويعيد العنصر الموجود أعلى المكدس
- isEmpty () هو يستخدم لتحديد ما إذا كان المكدس فارغًا أم فارغًا،
- يتم استخدام Clear () لمسح عناصر
- حجم المكدس () يتم استخدامه لإرجاع عدد العناصر الموجودة في المكدس
- إلى String () يتم استخدامه لطباعة المكدس في النموذج من سلسلة
ثم عند تنفيذ هذه الفئة، نستخدم كائنات لمكدس المحاكاة
Stack { منشئ () { هذا.العدد=0 هذه العناصر = {} } دفع (عنصر) { this.items[this.count]=element this.count++ } البوب () { إذا(this.isEmpty()){ العودة غير محددة } هذا.العدد-- نتيجة ثابتة=this.items[this.count] حذف this.items[this.count] نتيجة العودة } نظرة خاطفة () { إذا(this.isEmpty()){ العودة غير محددة } إرجاع this.items[this.count-1] } فارغ () { إرجاع هذا.العدد===0 } واضح() { هذه العناصر={} هذا.العدد=0 } مقاس() { إرجاع هذا } إلىسلسلة (){ إذا(this.isEmpty()){ العودة غير محددة } دع objectString=`${this.items[0]}` for(let i=1;i<this.count;i++){ objectString=`${objectString},${this.items[i]}` } سلسلة كائن الإرجاع } } مكدس ثابت = مكدس جديد () المكدس.push(23) المكدس.push(34) المكدس.push(80) console.log(stack.pop()) console.log(stack.peek()) console.log(stack.isEmpty()) console.log(stack.size())عندما يستخدم
console.log(stack.toString())
الكائنات لمحاكاة الأكوام، فإنه يستخدم المفتاح: القيمة
لتخزين البيانات. على سبيل المثال، يستخدم this.items[this.count]=element
هذا.count للتسجيل في هذه البنية حجم المكدس
عندما نقوم بإدراج رقم فيه، نقوم بتعيين العد كمفتاح
وإدراج القيمة كقيمة. في هذا الوقت، تحتاج إلى تغيير this.count++.
فيما يتعلق بـ pop() و peek()، تحتاج طريقة toString ()
أولاً إلى تحديد ما إذا كانت المكدس فارغة أم لا، فسوف تُرجع غير محددة.