Rumah >Java >javaTutorial >Bagaimana Mengendalikan Tanda Kurung dalam Penukaran Ungkapan Infix to Postfix?

Bagaimana Mengendalikan Tanda Kurung dalam Penukaran Ungkapan Infix to Postfix?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 15:12:03204semak imbas

How to Handle Parentheses in Infix to Postfix Expression Conversion?

Mengendalikan Kurungan dalam Penukaran Ungkapan Infix to Postfix

Menukar ungkapan infix kepada ungkapan postfix ialah tugas biasa dalam reka bentuk pengkompil. Mengendalikan kurungan dengan betul adalah penting untuk memastikan penukaran yang tepat.

Soalan anda melibatkan pengendalian kurungan dalam kaedah Java anda, toPostFix. Untuk menyelesaikannya, ikuti langkah berikut:

Apabila menghadapi kurungan terbuka (:

// opening (
if (in_fix.peek().type == 4) {   
    post_fix.push(in_fix.pop());
}

Apabila menghadapi kurungan tertutup ):

//closing )
if(in_fix.peek().type == 5){
    while(!(post_fix.isEmpty() || post_fix.peek().type == 4)){
         postfixstr.append(post_fix.pop());
    }
    if (post_fix.isEmpty())
        ; // ERROR - unmatched )
    else
        post_fix.pop(); // pop the (
    in_fix.pop(); // pop the )
} 

Proses ini memastikan bahawa :

  • Kurungan kiri ( ditolak ke post_fix tindanan.
  • Apabila kurungan kanan ) ditemui, pengendali dan token bukan kurungan muncul daripada post_fix dan dilampirkan pada postfixstr sehingga kurungan kiri ( ditemui pada post_fix.
  • Kurungan kiri muncul, dan kurungan yang betul muncul dari in_fix untuk memadankan kurungan berpasangan.

Dengan melaksanakan langkah-langkah ini, kaedah toPostFix anda akan mengendalikan berbilang lapisan kurungan dalam ungkapan infix dengan betul.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Tanda Kurung dalam Penukaran Ungkapan Infix to Postfix?. 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