مسیرها
/
Rust
Rust
/
تمرین‌ها
/
زاویه‌ی دید
زاویه‌ی دید

زاویه‌ی دید

دشوار

دستورالعمل‌ها

درخت را روی یک گره‌ی انتخاب‌شده دوباره والدگذاری کنید.

یک درخت نوع خاصی از گراف است که در آن همه‌ی گره‌ها به هم متصل‌اند اما هیچ دوری وجود ندارد. یعنی برای هر جفت گره، دقیقاً یک مسیر برای رفتن از یک گره به گره دیگر وجود دارد.

این تمرین تماماً درباره‌ی جهت‌دهی دوباره‌ی یک درخت است تا از دیدگاهی متفاوت به آن نگاه کنید. برای مثال، شجره‌نامه‌ها معمولاً از دیدگاه نیاکان نمایش داده می‌شوند:

    +------0------+
    |      |      |
  +-1-+  +-2-+  +-3-+
  |   |  |   |  |   |
  4   5  6   7  8   9

اما هیچ جهت ذاتی در درخت وجود ندارد. همین اطلاعات را می‌توان از دیدگاه هر گره‌ی دیگر در درخت نمایش داد، به این ترتیب که آن را تا ریشه بالا می‌کشیم و روابطش را هم همراه با آن می‌کشیم. بنابراین همان درخت از دیدگاه ۶ به این شکل خواهد بود:

        6
        |
  +-----2-----+
  |           |
  7     +-----0-----+
        |           |
      +-1-+       +-3-+
      |   |       |   |
      4   5       8   9

این کار به ما اجازه می‌دهد مسیرهای بین دو گره را ساده‌تر توصیف کنیم. برای مثال، مسیر از ۶ به ۹ (که در درخت اول تا ریشه بالا می‌رود و سپس تا یک گره برگ دیگر پایین می‌آید) دیده می‌شود که مسیر ۶-۲-۰-۳-۹ را دنبال می‌کند.

این تمرین شامل گرفتن یک درخت ورودی و جهت‌دهی دوباره‌ی آن از دیدگاه یکی از گره‌ها است.

نکته‌های ویژه‌ی تمرین در Rust

می‌توانید نمایش داخلی درخت خود را آزادانه انتخاب کنید. اما اگر فرزندان را در یک محفظه‌ی مرتب نگه می‌دارید، مراقب باشید. دو درخت باید بدون توجه به ترتیب فرزندان، با یکدیگر برابر در نظر گرفته شوند.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Rust Exercism

آماده‌اید زاویه‌ی دید را شروع کنید؟

در Exercism ثبت‌نام کنید تا Rust را همراه با 99 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.