سلام
یه سوال درباره درخت ها اگه بخواهیم یه الگوریتمی بنویسیم که توی درخت دودویی تمام برگ هایی رو که فرزند چپ هستند حذف کنه چه کار باید انجام بدیم؟
ممنون
همه گره های درخت رو از آغاز تا پایان پیمایش می کنیم.
در حین پیمایش اگر به برگی رسیدیم که فرزند چپ هست حذف اش می کنیم.
الگوریتم زیر غیر بازگشتی است :
1) یک پشته خالی ایجاد می کنیم.
2) گره ریشه درخت را در پشته قرار می دهیم.
3) اگر پشته خالی بود به مرحله 15 می رویم.
4) مقدار بالای پشته را در متغیر p قرار می دهیم.
6) مقدار فرزند چپ p را در متغیر w قرار می دهیم.
5) اگر w تهی بود به مرحله 11 می رویم.
6) اگر گره w فرزند چپ یا فرزند راست داشت به مرحله 10 می رویم.
7) مقدار فرزند چپ p را تهی می نماییم.
8) گره w را حذف می کنیم.
9) به مرحله 11 می رویم.
10) مقدار w را در پشته اضافه می کنیم.
11) مقدار فرزند راست p را در متغیر w قرار می دهیم.
12) اگر w تهی بود به مرحله 3 می رویم.
13) مقدار w را در پشته اضافه می کنیم.
14) به مرحله 3 می رویم.
15) پایان