جولة Go التفاعلية بالعربي › التزامن 7 / 7 السابق التالي

تمرين: الأشجار الثنائية المتكافئة

تمرين: الأشجار الثنائية المتكافئة

1. نفّذ الدالة Walk.

2. اختبر الدالة Walk.

تنشئ الدالة tree.New(k) شجرة ثنائية ذات بنية عشوائية (لكنها مرتبة دائمًا) تحتوي على القيم k، 2k، 3k، ...، 10k.

أنشئ قناة جديدة ch وابدأ اجتياز الشجرة:

go Walk(tree.New(1), ch)

ثم اقرأ 10 قيم من القناة واطبعها. ينبغي أن تكون الأعداد 1، 2، 3، ...، 10.

3. نفّذ الدالة Same باستخدام Walk لتحديد ما إذا كانت t1 وt2 تخزّنان القيم نفسها.

4. اختبر الدالة Same.

Same(tree.New(1), tree.New(1)) ينبغي أن تُرجع القيمة «صحيح»، وSame(tree.New(1), tree.New(2)) ينبغي أن تُرجع القيمة «خطأ».

يمكن العثور على توثيق Tree في هذا الموضع.

النص الأصلي بالإنجليزية

Exercise: Equivalent Binary Trees

1. Implement the Walk function.

2. Test the Walk function.

The function tree.New(k) constructs a randomly-structured (but always sorted) binary tree holding the values k, 2k, 3k, ..., 10k.

Create a new channel ch and kick off the walker:

go Walk(tree.New(1), ch)

Then read and print 10 values from the channel. It should be the numbers 1, 2, 3, ..., 10.

3. Implement the Same function using Walk to determine whether t1 and t2 store the same values.

4. Test the Same function.

Same(tree.New(1), tree.New(1)) should return true, and Same(tree.New(1), tree.New(2)) should return false.

The documentation for Tree can be found here.

هذا الدرس للقراءة فقط؛ جرّب المثال في الدرس التالي.

استعادة المثال الأصلي؟

ستُحذف تعديلاتك على شيفرة هذا الدرس، ويعود المثال كما ورد في الكتاب. لا يتغيّر اختيارك لمحرك التشغيل.