سوال در مورد آرایه (ساختمان داده) - نسخهی قابل چاپ |
سوال در مورد آرایه (ساختمان داده) - negar76 - 15 دى ۱۳۹۶ ۰۳:۵۵ ب.ظ
سلام
کسی میتونه راهنمایی کنه سوال زیر با چه روش و فرمولی به دست میاد یک آرایه ی سه بعدی با اندازه دلخواه تعریف کنید و برای آن مشخص کنید که اندیس یک عنصر خاص به شکل خطی چند خواهد بود؟ آرایه و عنصری که در نظر میگیریم دلخواهه حالا اگه بخوایم ذخیره اش کنیم اندیس اون خونه توی حافظه که عنصر مورد نظرمون در اون ذخیره میشه چنده؟ و بر عکسش رو هم باید حساب کنیم یعنی اگر اندیس اون خونه توی حافظه رو داشته باشیم چه جوری باید i و j و k رو حساب کنیم |
RE: سوال در مورد آرایه (ساختمان داده) - AreF95 - 15 دى ۱۳۹۶ ۱۰:۳۷ ب.ظ
تا حالا همچین سوالی ندیده بودم ولی خوب اگه یک آرایه سه بعدی برا خودتون میکشید و اندیس چندتا خونه رو می نوشتید به یه رابطه جالب برخورد میکردید... فرضا آرایه سه بعدی را با سه صفحه و سه سط و سه ستون در نظر بگیرید مانند : int[][][] a = new int[3][3][3] ; حالا به طور مثال a000 یا a001 یا a333 رو مجسم کنید : ۲۷ تا خونه خواهد داشت آرایه ای که تعریف کردیم (خانه های ۰ تا ۲۶) شما بعلاوه یک آنها را در نظر بگیرید یعنی ۱ تا ۲۷ : خونه ۲۷ --> a333 --> که ۲ + ۷ = ۳ + ۳ + ۳ خونه ۲۶ --> a332 --> که ۲ + ۶ = ۲ + ۳ + ۳ الی آخر ... از همین سر نخ برا حالت اول استفاده کنید . در این مثالی که زدم هر صفحه ۹ تا عنصر هر سطر ۳ تا عنصر و هر ستون ۳ تا عنصر داره : ۲۵ مثلا ۹ + ۹ + ۷ که یعنی دو تا صفحه رو پر کرده رفته صفحه سوم عنصر ۷ ، باز ۷ هم میشه ۳ + ۳ + ۱ که یعنی دو تا سطر رو پر کرده رفته سطر سوم ۱ هم که میشه ستون اول از همین سرنخی که گفتم هم برا حالت دوم استفاده کنید ... |