Binar daraxti ikkilik ifodalarni ifodalash


Download 147.12 Kb.
bet2/2
Sana25.12.2022
Hajmi147.12 Kb.
#1066371
1   2
Bog'liq
Binar daraxti ikkilik ifodalarni ifodalash

if (tree not empty)
if (tree token is operator)
print (open parenthesis)
end if
infix (tree left subtree)
print (tree token)
infix (tree right subtree)
if (tree token is operator)
print (close parenthesis)
end if
end if
end infix
Postfiksdan oʻtish[tahrir | manbasini tahrirlash]
Postfiks ifodasi har qanday binar daraxtning asosiy buyruqdab keyingi oʻtish orqali hosil boʻladi. Qavslar kerak emas.
Algoritm postfiks ( daraxt )
Algorithm postfix (tree)
/*Print the postfix expression for an expression tree.
Pre : tree is a pointer to an expression tree
Post: the postfix expression has been printed*/
if (tree not empty)
postfix (tree left subtree)
postfix (tree right subtree)
print (tree token)
end if
end postfix
Prefiks oʻtish[tahrir | manbasini tahrirlash]
Psevdokod:
Algoritm prefiks ( daraxt )
Algorithm prefix (tree)
/*Print the prefix expression for an expression tree.
Pre : tree is a pointer to an expression tree
Post: the prefix expression has been printed*/
if (tree not empty)
print (tree token)
prefix (tree left subtree)
prefix (tree right subtree)
end if
end prefix
Ifodalar daraxtini qurish[tahrir | manbasini tahrirlash]
Daraxtning qurilishi postfiks ifodasini bir vaqtning oʻzida bitta belgini oʻqish orqali amalga oshiriladi. Agar belgi operand boʻlsa, bitta tugunli daraxt yaratiladi va uning koʻrsatkichi stekga suriladi. Agar belgi operator boʻlsa, ikkita T1 va T2 daraxtiga koʻrsatgichlar stekdan chiqariladi va ildizi operator boʻlgan va chap va oʻng sonlari mos ravishda T2 va T1 ni koʻrsatadigan yangi daraxt hosil boʻladi. Keyin ushbu yangi daraxtga koʻrsatgich stekka suriladi[2].
Misol[tahrir | manbasini tahrirlash]
Postfiks yozuvidagi kirish: ab + cde + * * Birinchi ikkita belgi operandlar boʻlganligi sababli, bitta tugunli daraxtlar yaratiladi va ularga koʻrsatgichlar stekga suriladi. Qulaylik uchun stek chapdan oʻngga oʻsadi.

Stek chapdan oʻngga oʻsadi
Keyingi belgi „+“ belgisidir. U ikkita koʻrsatgichni daraxtlarga koʻchiradi, yangi daraxt hosil boʻladi va unga koʻrsatgich stekga suriladi.

Yangi daraxtning shakllanishi
Keyin c, d va e oʻqiladi. Har biri uchun bitta tugunli daraxt yaratiladi va mos keladigan daraxtga koʻrsatgich stekga suriladi.

Bir tugunli daraxt yaratish
Davom etishda „+“ belgisi oʻqiladi va u oxirgi ikkita daraxtni birlashtiradi.

Ikki daraxtni birlashtirish
Endi „*“ oʻqiladi. Oxirgi ikkita daraxt koʻrsatkichi ochiladi va ildiz sifatida „*“ belgisi bilan yangi daraxt hosil boʻladi.

Ildiz bilan yangi daraxtni shakllantirish
Nihoyat, oxirgi belgi oʻqiladi. Ikki daraxt birlashtiriladi va oxirgi daraxtda koʻrsatgich stekda qoladi.

Ab + cde + * * ifoda daraxtini yaratish bosqichlari

((5 + z) / −8) * (4 ^ 2) ga ekvivalent ikkilik algebraik ifoda daraxti
Algebraik ifodalar[tahrir | manbasini tahrirlash]
Algebraik ifoda daraxtlari raqamlaroʻzgaruvchilar va birlik va ikkilik operatorlarni oʻz ichiga olgan ifodalarni ifodalaydi. Baʼzi umumiy operatorlar × (koʻpaytirish), ÷ (boʻlish), + (qoʻshish), — (ayirish), ^ (koʻrsatkich) va — (inkor). Operatorlar daraxtning ichki tugunlarida, raqamlar va oʻzgaruvchilar barg tugunlarida joylashgan boʻladi[3]. Ikkilik operatorlar tugunlarida ikkita tugun, birlik operatorlarda esa bitta tugun mavjud.

Ikkilik mantiqiy ifoda daraxtiga ekvivalent ((rost {\displaystyle \lor }  yolgʻon) {\displaystyle \land } {\displaystyle \neg }  yolgʻon) {\displaystyle \lor }  (rost {\displaystyle \lor }  yolgʻon))
Mantiqiy ifodalar[tahrir | manbasini tahrirlash]
Mantiqiy ifodalar algebraik ifodalarga juda oʻxshash tarzda ifodalanadi, yagona farq maxsus qiymatlar va ishlatiladigan operatorlardir. Mantiqiy ifodalar oʻzgarmas qiymatlar sifatida true(rost) va false(yolgʻon) dan foydalanadi va quyidagi operatorlarni oʻz ichiga oladi: {\displaystyle \land }  (AND), {\displaystyle \lor }  (OR), {\displaystyle \neg }  (NOT).
Download 147.12 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling