لقد استعرضت مؤخرًا بنية البيانات وقمت بتطبيق المكدس من قبل بنفسي. المكدس هو نوع من الجدول الذي يقيد الإدراج وحذف موضع واحد فقط. العمليات الأساسية هي داخل وخارج المكدس ، لذلك يطلق عليها أيضًا جدول "الأول داخل وخارج".
أولاً ، دعونا نفهم مفهوم المكدس:
المكدس هو جدول خطي يحد من عمليات الإدراج والحذف فقط في رأس الجدول. في بعض الأحيان يطلق عليه أيضًا LIFO (الأحدث في الجدول الأول). لفهم هذا المفهوم ، يجب أولاً فهم المعنى الأصلي لـ "المكدس" ، بحيث يمكنك فهم الجوهر.
"المكدس" يعني المكان الذي يتم فيه تخزين البضائع أو تمديد الركاب إلى مستودع أو محطة عبور. لذلك ، يتم إدخاله في حقل الكمبيوتر ، والذي يشير إلى المكان الذي يتم فيه تخزين البيانات مؤقتًا ، لذلك هناك قول بأنه يدخل المكدس ويخرج المكدس.
طريقة التنفيذ هي كما يلي: حدد أولاً واجهة ، ثم قم بتنفيذ مكدس خطي ومكدس سلسلة من خلال هذه الواجهة. الرمز بسيط نسبيًا ، على النحو التالي:
package com.peter.java.dsa.interfaces ؛/*** تعريف التشغيل المكدس تعريف** Author Peter Pan*/stack public stack <T> {/* Query فارغ*/boolean isempty () ؛/* clear clear*/void clear () ؛/* من المكدس ، ولكن لا إزالته*/t peek () ؛/*إرجاع موضع الكائن في المكدس*/int (بيانات t) ؛}مكدس خطي: تم تنفيذه في صفيف.
package com.peter.java.dsa.common ؛ import com.peter.java.dsa.interfaces.stack ؛/** * stack linear * * author peter pan */public class linearstack <t> stack <T> {supppressWarnings ("غير محدد". Boolean isEmpty () {// todo todo method method method size == 0 ؛}. {return null ؛} t tmp = t [size-1] ؛ t [size-1] = null ؛ size-؛ return tmp ؛}@override public boolean push (t data) {// todo todo method method ؛ size size ؛}@override public t peek () {// todo method method method tuto stubif (size == 0) {return null ؛} else {return t [size -1] ؛}}/ * return index of data ، return -1 إذا لم يكن هناك بيانات/@@override public search (t data) {// to auto methid i ++) {if (t [i] .equals (data)) {index = i ؛ break ؛}} index ؛}@cumpresswarnings ("unchected") void private void () {t [] = NULL ؛} t = tmp ؛ tmp = null ؛}/ * من اليسار إلى اليمين من أعلى إلى أسفل المكدس */@@stride public string toString () {// todo todo method method stubstringbuffer = new StringBuffer () ؛ {buffer.append (t [i] .toString () + "،") ؛} buffer.append ("]") ؛ buffer.replace (buffer.lastindexof ("،") ، buffer.lastindexof ("،") + 1 ، "")سلسلة سلسلة: تم تنفيذها من خلال قائمة واحدة مرتبطة.
package com.peter.java.dsa.common ؛ استيراد com.peter.java.dsa.interfaces.stack ؛ الطبقة العامة linkedStack <T> تنفذ المكدس <T> {top private node ؛ int size int ؛@@@public boolean isempty () طريقة stubTop = null ؛ size = 0 ؛}@@override public t pop () {// todo method method toft topvalue = null ؛ if (top! = null) {topValue = top.data ؛ node oldtop = top = top. prev ؛ oldtop.prev = null ؛ {// todo method method tuto actubnode oldtop = top ؛ top = new node (data) ؛ top.prev = oldtop ؛ size ++ ؛ return true ؛@@override public int length () {// to to tomt ultudated alsed ؛}@override public t () {topValue = top.data ؛} إرجاع topvalue ؛}@تجاوز البحث العام int (بيانات t) {// todo method method method index = -1 ؛ node tmp = top ؛ for (int i = size -1 ؛ i> -1 ؛ i--) {if (tmp.data.equals (data)) tmp.prev ؛}} tmp = null ؛ فهرس العودة ؛}@تجاوز السلسلة العامة toString () {// todo method method stubstringbuffer buffer = new StringBuffer () ؛ buffer.append ("محتوى متصل مرتبط: [") {buffer.append (tmp.toString () + "،") ؛ tmp = tmp.prev ؛} tmp = null ؛ buffer.append ("]") ؛ buffer.replace (buffer.lastindexof ("،") ، buffer.lastindexof ("،") + 1 ، "") Data ؛ Node Prev ؛ Public Node (T Data) {// TODO Auto Constructor Stubthis.data = data ؛}}}لا يزال التعلم قيد التقدم وسيستمر تحديث الكود في المستقبل.
هذا هو كل التفسير التفصيلي لرمز مكدس بنية بيانات تنفيذ لغة Java ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!