Pengenalan
Menghuraikan ungkapan aritmetik dan membina pokok yang setara adalah tugas penting dalam reka bentuk pengkompil dan pemprosesan bahasa. Artikel ini akan menunjukkan cara menghuraikan ungkapan aritmetik dan mencipta perwakilan pokok dalam Java.
Menghuraikan Ungkapan
Untuk menghuraikan ungkapan, kita boleh menggunakan timbunan- algoritma berasaskan. Sambil kita mengulangi ungkapan:
Membina Pokok
Setelah ungkapan dihuraikan, kita boleh membina nod pokok daripada timbunan:
Contoh
Pertimbangkan ungkapan (5 2) *7:
<code class="java">Stack<Node> stack = new Stack<>(); stack.push(new LeafInt(5)); stack.push(new PlusOp()); stack.push(new LeafInt(2)); stack.push(new MultOp()); stack.push(new LeafInt(7)); while (stack.size() > 1) { Node right = stack.pop(); Operator op = (Operator) stack.pop(); Node left = stack.pop(); stack.push(new OpNode(op, left, right)); }</code>
Pokok yang terhasil akan mempunyai struktur berikut:
* / \ + 7 / \ 5 2
Mengendalikan Nombor dan Tanda Kurung Negatif
Untuk mengendalikan negatif nombor, mewakilinya sebagai 5 (-2) bukannya 5-2. Tanda-tanda negatif sentiasa mempunyai keutamaan yang tidak sama. Begitu juga, kurungan memaksa susunan operasi.
Pengesahan
Untuk memastikan ketepatan, sahkan ungkapan dengan menandai:
Kesimpulan
Menggunakan algoritma berasaskan tindanan, ia adalah mudah untuk menghuraikan ungkapan aritmetik dan membina perwakilan pokok yang setara dengannya. Pendekatan ini menyediakan asas yang boleh dipercayai untuk analisis lanjut dan manipulasi ungkapan aritmetik dalam Java.
Atas ialah kandungan terperinci Bagaimana Menghuraikan dan Membina Pokok daripada Ungkapan Aritmetik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!