السلام عليكم
السؤال هو: المستخدم يُدّخل Regular Expression أنا أقرأه ثم أرسم Parse Tree
مثلًا لو كانت Regular Expression هي:
(a|b)c*d
الرسمة ستكون:
https://dl.dropbox.com/u/12051533/Photo%202012-12-13%2003.36.00%20PM.jpg
محاولاتي:أولًا قضيت تقريبًا خمسة أيام أحاول معرفة كيف أرسم Tree والحمدلله وصلت الى أنها تُرسم بِـ Linked List بإستخدام Struct, Nodes and Pointers
مشكلتي الآن كيف أقرأ Regular Expression ثم احفظ مكان الرموز التى هي [*,(,),+] وأقرأ ما قبلها وبعدها حتى أرسمها
محاولتي؛ حتى الأن كتبت كود أقرأ Regular Expression ثم أحفظه فى مصفوفة، استخدمت for loop لأقرأ كل مُدخل واقارنه بالرموز وأحفظه في قيمة
ولم أستطع أن أكمل بعدها
أحتاج لتوسيع فكرتي من فضلكم، ما الذي يمكن أن استخدمه ويفيدني.
#include<iostream>
using namespace std;
int main()
{
const int SIZE = 10;
char RegularExpression[SIZE];
cout <<"Enter the Rregular Expression:"<<endl;
cin.getline(RegularExpression,SIZE);
cout <<RegularExpression;
for(int i=0; i<SIZE; i++)
{
if (RegularExpression == '*' || '(' || ')' || '+');
int value1= RegularExpression;
}
return 0;
}