#08 [Data Structures] - Infix To Postfix Using Stack

preview_player
Показать описание
كورس تراكيب البيانات باللغة العربية
شرح طريقة التحويل من التعبير الرياضي العادي الذي يفهمه الانسان الى التعبير الذي يفهمه الحاسوب
Course Data Structures In Arabic
Infix To Postfix Using Stack, explained
رابط الكود في لغة سي بلس بلس :
~
If you like my content, buy me a cup of coffee:
~
لطرح الاسئلة وإيجاد الحلول البرمجية
~
دعم القناة
~
Рекомендации по теме
Комментарии
Автор

ماشاء الله شرحك رائع دورت كتير ومافهمت غير عليك

mohammedmohammed-ioqc
Автор

بشوف الفيديو بعد 4 سنين من نزوله و استفدت جدا <3

zeyadayman
Автор

حاجة اللهم صلّ ع النبي بجد حضرتك 😂❤
شرح ال linked lists و كمان ال Infix و ال Postfix حاجة جامدة اقسم بالله 🌸
تسلم يا صديقي وربنا يوفقك دايما يارب

mohamedshelf-
Автор

Damn man even i dont know arabic. Still this lecture makes sense. Thank you

alphabeta
Автор

سبحان الله كنت مستصعبتها جدا وحتى وانا اشوف الشرح مافهمتها لين وصلت للنهاية، الله يبارك لك ياستاذ

SAM-olip
Автор

الله يجعله في موازين حسناتك العلم الي تقدمه ❤️🤲

rpfkkcp
Автор

شكرا جزيلا لحضرتك ❤
ربنا يباركلك يارب 🧡

mohamedadel
Автор

الله يعطيك الف عافيه
شرح جميل جدا
بس اشتي كود تحويل من postfix إلى infix

ueynvyc
Автор

السلام عليكم أخ عادل، أولا يعطيك العافية على مجهودك صراحة شرح رائع في ميزان حسناتك إن شاء الله




بس عندي ملاحظة صغيرة أو مشكلة بسيطة محيرتني في الكود ، صوبني إذا كنت غلطان:


أنا شفت الكود تبعك و نسخته و جربته أكثر من مرة، و أتوقع في خطأ بسيط في كودك وهو : أنو أوبيراتور الضرب أو أوبيراتور القسمة رح يدخل الستاك حتى لو كان كان التوب في الستاك هو أوبيراتور ضرب أو قسمة.




و هذا خطأ، لأنو على حسب ما فهمت منك : ما بصير أوبيراتور يدخل على الستاك إذا كان الستاك فيه أوبيراتور إله نفس الأولوية، لازم الأوبيراتور الي في الستاك يطلع أولا.


NO TWO OPERATORS OF THE SAME PRIORITY CAN STAY TOGETHER IN THE STACK






example:
infix: (A+B/C*(D+E)-F)
على حسب الكود تبعك هي بتصير :
postfix: ABCDE+*/+F-


مع أنه المفروض تصير هيك:
postfix: ABC/DE+*+F-

fares.abuali
Автор

ما شاء الله شرح اكثر من رائع
ولى ملحوظه على ال implement
عند عمل
5+6*2
تعطى
56+2*
اعتقد السبب هو عدم وضع break فى دالة GetOperatorWeight

okrhfvy
Автор

- 2 + 6
اذا كان عدد سالب في البداية مجموع مع عدد اخر تحدث مشكلة هنا

SwAt
Автор

كملاحظة : ارجو ذكر المصطلحات باللغة العربية خلال الشرح
بدل من كومبايلر ذكر مترجم
جزاك الله كل خير

alhazarw
Автор

دالة switch ناقصها ال break بعد كل weight عشان تعطى نتائج صحيحة
تلاميذك يا باشمهندس

tarekkotb
Автор

أستاذ عادل من بعد أذنك ممكن شرح شو عم يصير ب IsRightAssociative

muradalhalbi
Автор

ممكن كتابة التعبير التالي بصيغة
Postifixو
Prefix:
((a/f)*((a*b)/(r*r)))
وشكرا

mahamahmoud
Автор

استاذ عادل حبيبي شعجب ما شارح الكود ؟؟؟؟
الكود جدا مامفهوم

indbwxe
Автор

#include <bits/stdc++.h>
using namespace std;
int priority(char op) {
if (op == '+' || op == '-') return 1;
if (op == '*' || op == '/') return 2;
return 0; // for bracket
}
string infixToPostfix(string infix) { // operands in infix are given as variable names (a-z | A-Z) or digits (0-9)
stack<char> stk;
string postfix = "";
for (char ch : infix) {
if ((ch >= 'a' && ch <= 'z')
|| (ch >= 'A' && ch <= 'Z')
|| (ch >= '0' && ch <= '9')) { // operand
postfix += ch;
}
else if (ch == '(') { // opening bracket
stk.push(ch);
}
else if (ch == ')') { // closing bracket
while (!stk.empty() && stk.top() != '(') {
postfix += stk.top();
stk.pop();
}
stk.pop(); // pop the opening bracket
}
else { // operator
while (!stk.empty() && priority(ch) <= priority(stk.top())) {
postfix += stk.top();
stk.pop();
}
stk.push(ch);
}
}
while (!stk.empty()) { // pop all remaining operators from stack
postfix += stk.top();
stk.pop();
}
return postfix;
}
int main() {
string infix;
cout << "Enter an infix expression:\n";
cin >> infix; // a+(b*c+d/e/f*g)*h+i/j*k-l+m
cout << "The postfix expression is: ";
cout << infixToPostfix(infix) << '\n'; // abc*de/f/g*+h*+ij/k*+l-m+
return 0;
}
// Coder: Abdelaziz Mohamed

abdwlazizmohammed
Автор

ممكن فيديو لشرح الكود من انفكس لي بوست فكس بلغة ال c++

enghessa
Автор

في التمرين عند الدقيقة 8
طلع معي الجواب
-1/2*10++215
ممكن يعتبر جوابي كمان صح ؟؟

ramayag