سؤال

الخاص ديكسترا تحويلة ساحة الخوارزمية يستخدم تحليل أقحم التدوين و توليد RPN الإخراج.

أنا أبحث عن العكس, طريقة لتحويل RPN في ثانوية الرياضيات-الصف أسلوب أقحم التدوين ، من أجل تمثيل RPN تعبيرات من قاعدة بيانات إلى وضع المستخدمين بطريقة مفهومة.

الرجاء حفظ وقتك و لا طبخ خوارزمية أنفسكم فقط أشر لي إلى كتاب الأمثلة التي أنا لا يمكن أن يبدو للعثور على.فصبا من تحويلة ساحة الخوارزمية باستخدام المعرفة حول الرموز سوف تكون على الأرجح قادرة على العمل حتى حل.أنا فقط أبحث عن اختصار سريع, لذلك أنا لم يكن لديك إلى إعادة اختراع العجلة.

و رجاءا لا الوسم هذا النحو "الواجبات المنزلية" ، أقسم أنا خارج من المدرسة بالفعل!;-)

هل كانت مفيدة؟

المحلول

منذ RPN كما هو معروف postfix التدوين ، حاولت البحث في قوقل تحويل "postfix أن أقحم" وحصلت على نتائج قليلة جدا.أول عدة أمثلة التعليمات البرمجية ، ولكن وجدت RubyQuiz دخول لا سيما المنير.

نصائح أخرى

إذا كنت لا تشعر بالقلق حول إزالة زائدة بين قوسين ، ثم يلي يسب قانون العمل:

(defun rpn-to-inf (pre)
  (if (atom pre)
      pre
      (cond ((eq (car (last pre)) 'setf)
         (list (rpn-to-inf (first pre)) '= (rpn-to-inf (second pre))))
        ((eq (car (last pre)) 'expt)
         (list (rpn-to-inf (first pre)) '^ (rpn-to-inf (second pre))))
        (t (list (rpn-to-inf (first pre)) 
             (car (last pre)) 
             (rpn-to-inf (second pre)))))))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top