الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قراءة Expression ثم رسم Parse Tree

بدأه Shaymaru في 13 ديسمبر 2012 · 0 رد · 537 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

السؤال هو: المستخدم يُدّخل 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;
}

مواضيع مشابهة