Soalan:
Memandangkan rentetan ungkapan matematik, bagaimana anda boleh membina pokok huraian untuk mewakili ungkapan?
Penyelesaian:
1. Algoritma Shunting-Yard:
Algoritma Shunting-yard ialah pendekatan dua hala yang menukar ungkapan infiks kepada postfix (Notasi Polish Songsang) dan kemudian membina pepohon parse.
Infix to Postfix:
Postfix to Parse Tree:
2. Tatabahasa Formal:
Sebagai alternatif, anda boleh mentakrifkan tatabahasa formal untuk ungkapan matematik dan menggunakan alat penghuraian untuk menjana penghurai. Tatabahasa Parsing-Expression (PEG) tipikal untuk ungkapan matematik kelihatan seperti ini:
Expr: Term '+' Expr | Term '-' Expr | Term; Term: Factor '*' Term | Factor '/' Term | Factor; Factor: Number | '(' Expr ')';
Beberapa perpustakaan C/C menyokong penghuraian PEG, seperti:
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan artikel anda: Mudah dan langsung: * Cara Menghuraikan Ungkapan Matematik dalam C : Algoritma Shunting-Yard dan Tatabahasa Formal * Tikar Penghurai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!