• 0
بسوووم

ladder game!

سؤال

You can use the Ladders graph to play the Ladders game. In this two-player game, one player chooses a starting word and an ending word and the other player constructs a "ladder" between the two words.

A ladder is a sequence of words that starts at the starting word, ends at the ending word, and each word in the sequence (except the first) is obtained from the previous word by changing a letter in a single position.

For example, suppose the starting word is flour and the ending word is bread, then a ladder between these two words is: flour, floor, flood, blood, brood, broad, bread.

This is the link that will take you to a file called words.dat that contains 5757 five letter English words.

http://www.cs.uiowa.edu/~sriram/21/spring06/words.dat

This word list is the database that your program will use to construct the Ladders graph.

The Ladders graph should contain a vertex for every word in the file and an edge between every pair of vertices that differ in exactly one position.

To construct the graph, you should call the function addVertex on every word in the file and then the function addEdge for every edge you want to add.

After you have constructed the Ladders graph, let the program answer the following questions:

What is a word with maximum number of neighbors? Output such a word and all its neighbors.

What is a word with fewest numbers of neighbors? Output such a word and all its neighbors

السؤال:

كيف لي أن أجعل الكلمات التي تختلف في حرف واحد adjacent???

علما بأن ملف الكلمات مرتب على أساس أنها تختلف فيما بينها في حرف واحد

- قمت بتعبئة الفيرتكس في الجراف من الفايل

graph_ADT.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

14 إجابة على هذا السؤال .

  • 0
كيف لي أن أجعل الكلمات التي تختلف في حرف واحد adjacent???

هذا يعتمد على طريقة تخزينك للجراف. الكلمتين سوف يكونا متجاورتين إذا كان يوجد edge بينهما. يعنى بإختصار كل كلمة المفروض إنها تحتوى على عناوين جيرانها.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

((كل كلمة المفروض إنها تحتوى على عناوين جيرانها.))

ممكن توضح اكثر؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مش إنت مخزن كل كلمة فى structure بيعبر عن ال vertex ؟

لازم كل vertex يبقى فيها data structure أيا كان علشان يوصلك لجيرانها. و لو عايز توضيح أكتر يبقى لازم أعرف إنت مخزن ال graph إزاى ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أول خطوه هي أني ملأت الجراف من الفايل بحيث انه ياخذ كل كلمه ويضعها في فيرتكس

بهذا يكون الجراف امتلأ بالكلمات فيرتكسس لكن بدون اركس بينها

بعد ذلك قمت بعمل فنكشن

تبدأ من اول فيرتكس وتنتهي بأخر فيرتكس

تقارن جميع الفيرتكس بهذا الفيرتكس اذا كانت الكلمتين(الفيرتكسين) تختلفان بحرف واحد يقوم بعمل اركس بينهما

استخدمت في المقارنه فور لوب على كل حرف

لكن سؤالي في هذه المرحله:

كيف لي ان أوصل الكلمه الاولى مثل bread الى كلمه ثانيه مثل flour?

او: ماذا يخدمني طباعتي للادجيسنت؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب يعنى إنت خلاص وصلت ال vertices ببعض و عايز تعمل search, فى الحالة دى حتدور على الكلمة الأولانية "bread" و تعتبرها هى ال root بتاعتك و تطبق على الجراف search technique لحد ما توصل لل target node اللى هيا "flour" ,و تطبع المسار اللى إنت مشيت فيه لو كان صح ووصلك للنتيجة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سلام :D

ما بعرف اذا بقدر افيدك بس متل ما فهمت السؤال هو كيف تعمل edge ممكن عن طريق مصفوفة مربعة أبعادها تعتمد على عدد الvertix الموجودة

فيكون كل cell في المصفوفة ال row لم بعبر عن الfrom vertix والعمود to vertix

وتخزن في الخلية قيمة ال weight للمسار او قيمة 1 متلا اذا ما بدك وزن للمسار

هيك بكون كل نود مرتبط بجيرانه

عند عرضهم بس بتعمل بحث على السطر وبتشوف الجيران

هل وضحت الصورة

white-soul

;)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مثل ماقلت أخي بلوتيث قمت بعمل سيرش وطبعت الكلمتين والمسار الي بينهم

لكن ظهرت لي مشكله وهي أن الكلمات الموجوده في المسار بين الكلمتين المختارتين قد تختلف فيما

بينها بأكثر من حرف وهذا يعتبر خطأ !!!

مثال على ذلك:

الكلمه: abase

نريد توصيلها للكلمه:abhor

يظهر لي:abase-abash-abate-abbey-abbot-abeam-abend-abets-abhor

هذا هو البرنامج امل من حضرتكم الاطلاع عليه وتنبيهي للخطأ الذي وقعت فيه

ملاحظه: قد تجدون الهيدر فايل كثيره لكن الهيدر فايل الذي تم فيه التعديل هو graph

............ وشكرا

Copy_of_Ch12p.zip

تم تعديل بواسطه بسوووم
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فين البرنامج ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عفوا يا أخى و لكن لماذا كتبت الدوال مرة أخرى ؟!! الكلاس Graph يمدك بكل الدوال التى تحتاجها!

	   int  insertVertex   (TYPE dataIn);
int deleteVertex (KTYPE dltKey);
int insertArc (KTYPE fromKey, KTYPE toKey);
int deleteArc (KTYPE fromKey, KTYPE toKey);
int retrieveVertex (KTYPE key, TYPE& DataOut);
int firstArc (KTYPE key, TYPE& DataOut);
bool emptyGraph (void);
bool graphFull (void);
int graphCount (void);

void depthFirst (void (*process)(TYPE dataProc));
void breadthFirst (void (*process)(TYPE dataProc));

كما أنى تهت وسط كل الدوال المكتوبة برجاء مراجعة الكود مرة أخرى و إختصاره و إرسال جميع الهيدر فايلز علشان أعمل Build للمشروع و أشغله و أشوف الغلط فين.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا لم أكتب الفنكشنز هذه (جاهزه)

الفنكشنز هذه هي نقطة الانطلاق بالنسبه لنا يعني اختصارا للوقت والجهد نعدل عليها

ونستخدمها في برنامجنا.....

اما بالنسبه للهيدر فايل فهي موجوده جميعا

فقط تحتاج لفك الملف المضغوط وفتحه من برنامج السي بلس بلس

واذا خرج ايرورز في الهيدر جراف تعمل هيدر جديد باسم جراف وتنسخ له الموجود في الهيدر جراف (القديم)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

معلش أنا أسف على التأخير بس ولله مشغول الأيام دى,

أنا شغلت الكود و هو بيطبع الكلام بنفس ترتيبه فى الفايل!! حاولت أعرف ليه بس لقيت إنى محتاج أقرا الكود من الأول للآخر و للأسف مفيش وقت و كمان عملية ال Debugging صعبة جدا :s.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
مثل ماقلت أخي بلوتيث قمت بعمل سيرش وطبعت الكلمتين والمسار الي بينهم

لكن ظهرت لي مشكله وهي أن الكلمات الموجوده في المسار بين الكلمتين المختارتين قد تختلف فيما

بينها بأكثر من حرف وهذا يعتبر خطأ !!!

مثال على ذلك:

الكلمه: abase

نريد توصيلها للكلمه:abhor

يظهر لي:abase-abash-abate-abbey-abbot-abeam-abend-abets-abhor

هذا هو البرنامج امل من حضرتكم الاطلاع عليه وتنبيهي للخطأ الذي وقعت فيه

ملاحظه: قد تجدون الهيدر فايل كثيره لكن الهيدر فايل الذي تم فيه التعديل هو graph

............ وشكرا

ممكن أعرف ما الحل الصحيح بناءاً على الكلمات الموجودة في ال word 2

تم تعديل بواسطه The Cpp
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .