Rumah  >  Artikel  >  Java  >  Bagaimana Menghuraikan Ungkapan Aritmetik dan Membina Perwakilan Pokok di Jawa?

Bagaimana Menghuraikan Ungkapan Aritmetik dan Membina Perwakilan Pokok di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 05:36:02823semak imbas

How to Parse an Arithmetic Expression and Construct a Tree Representation in Java?

Menghuraikan Ungkapan Aritmetik dan Membina Pokok daripadanya di Jawa

Dalam artikel ini, kita akan menyelidiki selok-belok menghurai ungkapan aritmetik dan membina perwakilan pokok dalam Java.

Pengenalan

Sebagai permulaan, kami akan menganggap bahawa ungkapan input dibekalkan sebagai rentetan dan mematuhi dengan peraturan berikut:

  • Nombor negatif mesti disertakan dalam kurungan.
  • Kurungan mesti seimbang secara konsisten.

Membina Pokok

Pada terasnya, membina pokok daripada ungkapan aritmetik melibatkan penggunaan tindanan. Semasa kami menghuraikan aksara ungkapan mengikut aksara, kami menolak pengendali dan nilai berangka ke dalam timbunan. Operator mempunyai keutamaan yang berkaitan, membolehkan kami menilai dan menggabungkan sub-ungkapan semasa kami menghadapinya.

Pendekatan

  1. Mulakan Tindanan: Mulakan dengan timbunan kosong.
  2. Hunting Ungkapan: Lawati setiap aksara dalam rentetan ungkapan.
  3. Kendalikan Tanda Kurung: Jika kurungan ditemui, sama ada menolaknya ke dalam tindanan atau menilai sub-ungkapan dalam kurungan.
  4. Kendalikan Operator: Apabila menemui pengendali, bandingkan keutamaannya dengan "keutamaan tertinggi" semasa dalam timbunan. Jika arus lebih rendah daripada keutamaan pengendali baharu, tolak pengendali baharu ke tindanan. Jika tidak, nilaikan operator pada tindanan sehingga keutamaan operator baharu adalah lebih tinggi atau sama.
  5. Kendalikan Nilai Berangka: Tolak nilai berangka terus ke tindanan.
  6. Nilai Tindanan: Setelah semua aksara diproses, nilaikan operator yang tinggal pada tindanan dari atas ke bawah.

Contoh

Pertimbangkan ungkapan:

(5+2)*7

Kami akan menghuraikannya seperti berikut:

Character Action Stack
( Push ( (
5 Push 5 (, 5
Push (, 5,
2 Push 2 (, 5, , 2
) Evaluate to 7, push 7 (, 7
* Push * (, 7, *
7 Push 7 7, *, 7

Pokok yang terhasil ialah:

(5+2)*7

Kesimpulan

Menghuraikan ungkapan aritmetik dan membina pokok ialah operasi asas dalam sains komputer. Artikel ini menyediakan pendekatan langkah demi langkah menggunakan tindanan, menyerlahkan kepentingan peraturan keutamaan dan keseimbangan kurungan. Melaksanakan algoritma ini dalam Java akan membolehkan anda mencipta aplikasi berkuasa yang boleh memproses dan memanipulasi ungkapan aritmetik dengan berkesan.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Ungkapan Aritmetik dan Membina Perwakilan Pokok di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn