موضوع مقاله: درخت (ساختار داده) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # درخت (ساختار داده) | مقدمه: گره‌ها هر گره در درخت تعدادی (صفر یا بیشتر) گره فرزند دارد، که در زیر آن در درخت قرار دارند (به‌طور قراردادی، درخت به سمت پایین رشد می‌کند، برخلاف آنچه در طبیعت می‌بینیم). | ## بخش 1: درخت (ساختار داده) | مسیری که از گره به ریشه وصل می‌شود مسیر ریشه نام دارد و طول این مسیر عمق آن گره است. که این زیر درخت درختی است ریشه دار که آن گره ریشهٔ آن است و کسی پس از خواندن این متن از خود نپرسید که چطور این کسی که به این قشنگی درخت رو از خود درخت واقعی که بنده افتخار کاشت و برداشت و حتی افتخار خوردن میوه آن نصیبم شده را در جان‌هایی که حال از تمدن و پیشرفت رو به زوال از پوچی که همان سوراخ بزرگی است که مبنا میخوانندش و روح پوچی رو در ظاهر هم نتوانسته شبیه بقیه کپی‌های دیگر حفظ کند و حتی زورش به نگه داشتنش شکل ظاهری خود نرسیده توانسته کلی از راه‌های دانش را که جستجوی همه کارهای عالم و اثبات‌ها را همین دانشمندان به ظاهر دانا به آن گره می‌زنند درخود نگه دارد. پس دراینجا کسی به اشتباه آن اصلی را که دانشمندان که تا حالا به هستِ اصلی دانِ آن که تبدیل شده به دام آن نگاهی نکرده‌اند تمام چرخ‌های نیلوفری را در حیرت فرو برده که آیا اصلاً این درخت او که دانش است اصلاً دربارهٔ علم صحبت می‌کند؟ یعنی بی زبان ترین‌ها هم می‌فهمند اشتباه را چرا که کل هستی از یک پیوند یکتا و تودر تو که الان جهت بیت کوین رو گرفته و شده ارزشی که همه ارزشها را برای بزرگ کردن آن فدا می‌کنند و نمی‌دانند که هستی از همان اول به همین پایداری ظاهری بیت کوین است که هیچ ورود غیر محترمی را راه ندارد ولی در عین حال براس ورودهای محترم حتی در هر لحظه هدایای ارزشمندی دارد که حال انسان متمدن امروز آن را صلاح کار خود کرده و اصل آن را سپرده دست افسانه‌ها باشد که این جهت درست، دری به سمت درهای بسیار دم دستی تر و قابل فهم تر و حتی جهان کوچکتر ولی ۱۰۰ درصدی و برپایه ارزش‌های واقعی نهادن گره‌های برگLeaf nodes پایین‌ترین گره‌های یک درخت گره‌های برگ نام دارند. کلیدها مسئولیت جداسازی اطلاعات را هنگام اضافه‌شدن آن‌ها به درخت دارند که در نتیجه تعداد کلیدها یکی کمتر از تعداد فرزندان است. در این صورت این عضو دارای حداکثر n+1 فرزند است که چپ‌ترین فرزند آن مقدار کمتر مساوی با و فرزند دوم آن مقدار کمتر مساوی با و بیشتر از دارد و به همین ترتیب فرزند i-ام مقداری بزرگتر از و کمتر مساوی با دارد. | ## بخش 2: درخت (ساختار داده) | بعد با مقایسه کردن مقدار c با کلیدها زیر درختی که این مقدار باید به ان اضافه شود را پیدا می‌کنیم. این روند را ادامه می‌دهیم تا به یک راس ایجاد نشده برسیم سپس با اضافه‌کردن ان مقدار c را به درخت اضافه می‌کنیم. ابتدا باید راسی را که می‌خواهیم حذف کنیم پیدا کنیم که این کار همانند زمانی است که می‌خواستیم هنگام درج راس خالی مناسب را پیدا کنیم. بعد از پیدا کردن راس مناسب کافی است مانند درخت دودویی، بزرگ‌ترین راس در زیردرخت ان را در ان جایگزین کنیم و ان راس را حذف کنیم. اگر فرض کنیم درخت متوازن است در نتیجه هزینه درج و حذف هم برابر است با پیدا کردن راس مناسب که برابر با ارتفاع درخت که است می‌باشد. مقایسه فرکتال با درخت در بالا هزینه‌های زمانی فرکتال و درخت رو با هم مقایسه کردیم. | ## بخش 3: درخت (ساختار داده) | اما در فرکتال هر عضو دارای فرزند و مقدار است و در نتیجه مرتبه حافظه مورد نیاز هر راس است. از طرفی اگر N مقدار را در درخت و فرکتال ذخیره کنیم، درخت دارای N راس و فرکتال دارای راس است. یکی دیگر از مزیت‌های فرکتال زمانی است که از این الگوریتم در حافظه دیسک‌ها استفاده شود. فرض کنید اطلاعات را در دو دیسک ذخیره کرده‌اید که یکی با الگوریتم درخت و دیگری با فرکتال کار می‌کند. در این صورت می‌دانیم هزینه دسترسی و خواندن اطلاعات از دیسک بسیار زیاد است و می‌خواهیم تا جای ممکن دسترسی به دیسک را کاهش دهیم. در این صورت در دیسکی که با الگوریتم درخت کار می‌کند برای خواندن یک مقدار باید ابتدا ان را جستجو کرد و سپس آن را از دیسک خواند و به حافظه نهان آورد. | ## جمع‌بندی | اما اگر دیسک با الگوریتم فرکتال کار کند بعد از پیدا کردن مقدار می‌توان کل حافظه نهان راس را به حافظه نهان آورد و طبق اصل محلی دسترسی‌ها، تعداد دسترسی‌ها به حافظه کمتر می‌شود و مخصوصاً زمانی که بخواهیم عمل نوشتن در حافظه انجام دهیم این اختلاف محسوس تر است.