ساختمان داده (Data Structure) – راهنمای جامع و کاربردی

ساخت آرامگاه بوعلی سینا در سال ۱۳۳۳ به پایان رسید. در سال ۱۳۵۱ در یک نمایشگاه سه نفری به اتفاق «سالوادور دالی» و «پابلو پیکاسو» در دانشگاه ماساچوست آمریکا شرکت کرد. اگر یک فرد جدید اضافه شود، به انتهای صف میرود و فردی که در ابتدای صف ایستاده اولین نفری است که بلیط دریافت کرده و بنابراین صف را ترک میکند. InsertAtEnd: یک عنصر داده شده را در انتهای لیست پیوندی درج میکند. ساختارهای داده متداول کدامند؟ لیست پیوندی دیگر ساختمان داده خطی مهم محسوب میشود که ممکن است در ابتدا شبیه به آرایهها به نظر برسد اما در تخصیص حافظه، ساختار داخلی و چگونگی انجام عملیات پایهای درج (insert) و حذف (delete) با آرایه متفاوت است. به طور کلی دو نوع آرایه وجود دارد که در ادامه بیان شدهاند. در ادامه تصویری از ساختار داخلی یک لیست پیوندی ارائه شده است. از آنجا که داده حیاتیترین موجودیت در علم کامپیوتر است، ارزش واقعی ساختمان دادهها روشن است. Delete: یک عنصر داده شد را از لیست پیوندی حذف میکند. آشنایی با «ساختمان دادهها» (Data Structures) از جمله نیازهای دانشمندان داده، مهندسان داده، دادهکاوها، کارشناسان یادگیری ماشین و برنامهنویسها محسوب میشود.

از میان انواع درختهای بیان شده در بالا، درخت دودویی و درخت جستوجوی دودویی پر استفادهترین نوع درختان هستند. او در این نمایشگاه تابلویی از «کلافهای خطی» را به نمایش گذاشت که در آن از خطوط موازی و پر پیچ و تابی استفاده کرده بود که همدیگر را قطع نمیکردند. این «قالب» به ساختمان دادهها این امکان را میدهد که در برخی از عملیات کارآمد و در برخی دیگر ناکارآمد باشند. » او در پاسخ به این پرسش مىگوید: «افتخار مىکنم که ایرانى هستم و افتخار مىکنم که در موقع تولد، ایران عزیز به من این امکان را داده است که پایم را روى خاک مقدسش بگذارم. چرا به ساختمان داده نیاز است؟ مهندسین نرمافزار بیش از ۴۰ سال است که با انواع ساختارهای داده سر و کار دارند، از این رو در اغلب مسائل موجود در دادهکاوی، یادگیری ماشین و برنامهنویسی نیاز به داشتن درک عمیقی از ساختمان دادهها وجود دارد. او طرح آرامگاه را مطابق با دورهای که بوعلی سینا در آن میزیسته از روی قدیمیترین بنای تاریخدار اسلامی یعنی برج گنبد قابوس در شهر گنبد کاووس اقتباس کرد. آرامگاههای بوعلی سینا در همدان، کمالالملک در نیشابور، خیام در نیشابور، نادرشاه افشار در مشهد، کلنل محمد تقی پسیان در مشهد، مقبره عباس میرزا و تعدادی دیگر از رجال قاجار از آثار ماندگار هوشنگ سیحون هستند.

او در طول فعالیت خود در ایران بناهای مشهوری را طراحی کرد؛ بناهایی که به دست این هنرمند ایرانی ساخته شدند به عنوان بخشی از تاریخ معماری مدرن و تلفیق آن با معماری سنتی به شمار می روند؛ همچنین توجه سیحون به نوع شخصیتی که بنا را برای او طراحی میکرد، از ویژگیهای مهم کار وی به شمار میرود. هوشنگ سیحون در سال ۱۳۲۵ به دعوت «آندره گدار»، رئیس دانشکده هنرهای زیبای تهران برای ادامه تحصیل به پاریس رفت. سیحون، یکی از نخستین دانشجویان رشته معماری دانشکده تازه تاسیس هنرهای زیبای دانشگاه تهران در سال ۱۳۱۹ بود. در سال ۱۹۸۱ موزه «Hors du temps» در جنوب فرانسه به طور رسمی افتتاح شد و یکی از آثار سیحون به عنوان بخشی از نمایشگاه دائمی به دیوار آویخته شد. او در این دوره در برگزاری دو کنگره جهانی معماری به ایران، یکی در اصفهان تاریخی و دیگری در تخت جمشید (شیراز) نقش بسزایی داشت. مهندس هوشنگ سیحون به مدت ۱۵ سال مسئولیت مرمت بناهای تاریخی ایران را به عهده داشت. اندکی پس از این دستاورد، مهندس سیحون نخستین اثر معماری خود را که بنای یادبودی بر آرامگاه «بوعلی سینا» بود، طراحی کرد. آثار او در دانشگاههای معروف امریکا از جمله هاروارد، برکلی (کالیفرنیا)، واشینگتن (سنت لوئیز)، ام آی تی و همچنین در موزه هُرس دو تِمپ (نیس فرانسه) به طور دائم به نمایش گذاشته شده است.

به بیان ساده، «ساختمان داده» (Data Structure) ظرفی است که دادهها در آن در یک قالب خاص ذخیرهسازی میشوند. این دادهها به صورتی ذخیره میشوند که آخرین داده ذخیره شده اول نمایش داده میشود. درختها به طور گستردهای در هوش مصنوعی و الگوریتمهای پیچیده به منظور فراهم کردن یک مکانیزم ذخیرهسازی موثر جهت حل مساله استفاده میشوند. به منظور برداشتن کتابی که در وسط قرار دارد، نیاز به حذف همه کتابهایی که روی آن قرار دارند است. در اینجا است که نیاز به «پشته» (Stack) مطرح میشود. گراف مجموعهای از گرهها است که به صورت یک شبکه به یکدیگر متصل شدهاند. درختها مشابه گرافها هستند، ولیکن تفاوت کلیدی آنها با یکدیگر آن است که در درخت برخلاف گراف دور (cycle) وجود ندارد. تعداد یالها در گراف را محاسبه کنید. بررسی کنید که یک گراف درخت هست یا خیر. همچنین، یک اشارهگر راس (Head) وجود دارد که به اولین عنصر از لیست پیوندی اشاره میکند و اگر لیست خالی باشد به تهی (Null) یا هیچ مقدار اشاره میکند. ایران را تمامی ایرانیان، فارغ از عقاید شخصی، دین یا مذهب خود ساختهاند. از جمله مسائلی که کارشناسان به آنها میپردازند میتوان به حقوق کارمندان یک سازمان، قیمت سهام، لیست خار و بار و یا حتی یک راهنمای تلفن ساده اشاره کرد.

بازسازی و طراحی مجدد آرامگاه فردوسی، بنای موزه توس، ساختمان بانک سپه در میدان توپخانه تهران، ساختمان مجلس شورای ملی، سینما آسیا، سینما سانترال، ساختمان سازمان نقشهبرداری کل کشور، کارخانه آرد مرشدی، کارخانه نخریسی کوروس اخوان، کارخانه کانادادرای (زمزم فعلی) در تهران و اهواز، مجتمع آموزشی یاخچیآباد و ۱۵۰ پروژه مسکونی برای افراد سرشناس، از دیگر آثار مهندس سیحون بهشمار میروند. بارها، شاگردان سیحون سعی کردند تا استاد را برای طراحی و برگزاری نمایشگاه به ایران بازگردانند؛ ولی همیشه پیشنهادات ایشان با عدم موافقت مسئولان به ناکامی انجامید. هیچ گلهاى از هیچکس ندارم و مىدانم بىمهرىها قطعاً از روى عدم آگاهى نسبت به درون و ضمیر من بوده است. اندیس این آرایه از طریق یک تابع درهمسازی محاسبه میشود. در تصویر زیر چگونگی نگاشت درهمسازی در یک آرایه نمایش داده شده است. این ساختمان داده امکان بازیابی سریع را فراهم میکند و اغلب برای جستوجوی کلمات در دیکشنری، پیشنهاد خودکار در موتورهای جستوجو و حتی مسیریابی IP یا IP routing مورد استفاده قرار میگیرد. درهمسازی (Hashing) فرآیند مورد استفاده برای شناسایی اشیا و ذخیرهسازی هر شی در اندیسهای یکتا از پیش محاسبه شده است که به آنها «کلید» (key) گفته میشود.

درخت (Tree) یک ساختمان داده سلسلهمراتبی شامل راسها (گرهها) و یالهایی است که آنها را به یکدیگر متصل سایت dr-architecture میسازند. Trie که به آن درخت پیشوندی (Prefix Tree) نیز میگویند، یک ساختار درخت مانند است که برای حل مسائل مرتبط با رشتهها (Strings) بسیار موثر است. Pop (برای برداشتن داده با حذف آن داده): عنصر بالایی (Top) را پس از حذف از پشته باز میگرداند. Top (برای برداشتن داده بدون حذف آن): عنصر بالایی را بدون حذف از پشته باز میگرداند. ساختمان دادهها برای ذخیرهسازی دادهها به شکل سازمان یافته قابل استفاده هستند. او در طی بیست سال، علاوه بر طراحی بناهای یادبود بزرگان تاریخ ایران و ساختمانهای نظیر مجلس شورای ملی و سازمان نقشه برداری کشور، به طور گسترده در ایران، اروپا و آمریکای شمالی، سخنرانی و سمینارها و کارگاه های متعددی را برگزار کرد. او عضو شورای ملی باستانشناسی، شورای عالی شهرسازی و شورای مرکزی دانشگاههای کشور بود همچنین در سال ۱۳۴۸ برای مدت چهار سال به عضویت شورای شهر تهران انتخاب شد. گدار همچنین طراح موزه ملی ایران و پردیس دانشگاه تهران بود.

آندره گدار، باستانشناس، معمار و مورخ هنر فرانسه و خاورمیانه بود که به دعوت رضاشاه به ایران آمد و سالها مدیر سازمان باستانشناسی ایران بود. او در ۱۱ بهمن ۱۳۵۹ به دعوت دولت فرانسه تهران را به مقصد پاریس ترک کرد. او تا سال ۱۹۸۲ در فرانسه ماند و همزمان چندین نمایشگاه نقاشی و طراحی برگزار کرد. در ۱۹۸۹، نمایشگاه لسآنجلس که با حضور ۱۳۰ نقاش برگزار شد کارهای سیحون یک از برندگان نمایشگاه اعلام شد و مورد تقدیر قرار گرفت. تمام تحولات فرهنگى و هنرى و اجتماعى کشورم دقیقاً مورد توجهام مىباشند. و آیا هنوز تحولات فرهنگى و هنرى و اجتماعى این کشور برایتان مهم و جالب هست یا نه؟ بررسی کنید که آیا آرایههای داده شده مجزا هستند. همچنین، جهت مطالعه بیشتر پیرامون ارتباط ساختمان داده و درس تحلیل و طراحی الگوریتم ها و درس الگوریتم های پیشرفته (درس نظریه الگوریتم پیشرفته)، مطالعه مطلب «درس الگوریتم های پیشرفته | مفاهیم پایه به زبان ساده» پیشنهاد میشود. ساختمان دادههای متفاوتی بر پایه درهمسازی وجود دارند، اما پر استفادهترین آنها جدول درهمسازی است.

لیستهای پیوندی برای پیادهسازی سیستم فایلها (file systems)، جدولهای درهمسازی (hash table) و لیستهای مجاورت (فهرست همسایگی | adjacency lists) مورد استفاده قرار میگیرد. او چندین مسابقه و جوایز دیگر را برای طرحهای معماری خود برنده شد. نخستین مجموعه طرحهای سیاه قلم هوشنگ سیحون در سال ۱۹۷۴ با نام «نگاهی به ایران» در پاریس منتشر شد. هم چنین در سال ۱۹۹۲، استاد هوشنگ سیحون مجموعهای تحت عنوان «سنگهای گویا» که مشتمل بر طرحهای سیاه قلم از اماکن مقدسه بهایی بود، تهیه کرد. در سال ۱۳۴۷ نخستین نمایشگاه خود را در تهران برگزار کرد که سبک جدیدی از طراحی انتزاعی با قلم و مرکب را در آن به نمایش گذاشت. یکی از این نمایشگاهها، آثار آبرنگ و دیگری نقاشیهای قلم و مرکب و در آخری آثار نمدی او به نمایش درآمدند. یکی از اینها طراحی او برای بنای یادبود در ایستگاه مرکزی راه آهن تهران بود. یک یال ممکن است شامل وزن/هزینه باشد و نشان دهد چه هزینهای برای رفتن از راس x به y وجود دارد. اعداد دودویی از ۱ تا n را با استفاده از صف تولید کنید.

به هر عنصر داده یک مقدار عددی مثبت (منظور اعداد صحیح غیر منفی شامل صفر است) تخصیص داده میشود که اندیس (Index) نام دارد و موقعیت آن عنصر را در آرایه نشان میدهد. در تصویر زیر یک آرایه با سایز چهار شامل عناصر ۱، ۲، ۳ و ۴ قابل مشاهده است. Nاُمین گره از پایان را از یک لیست پیوندی بازگردانید. اجداد یک گره داده شده در درخت دودویی را پیدا کنید. یک لیست پیوندی، آرایهای از گرهها است که در آن هر گره دارای اطلاعاتی مانند داده و یک اشارهگر به گره بعدی در زنجیره است. این مجموعه دارای تصاویر زیبایی از نقاط روستایی و مناظر طبیعی ایران بود. در آرایه مشاهده شده در بالا، اندیس خانهای که مقدار ۱ در آن قرار دارد برابر با ۰، خانه حاوی عدد دو دارای اندیس ۱، خانه با مقدار ۳ دارای اندیس ۲ و خانه با مقدار ۴ دارای اندیس ۳ است. این کار با استفاده از آرایه قابل انجام نیست. تنها تفاوت قابل توجه بین پشته و صف آن است که به جای استفاده از روش آخرین ورودی اولین خروجی، صف روش «اولین ورودی اولین خروجی» (FIFO | First in First Out) را پیادهسازی میکند. از ابتکارات و نوآوریهای شایان توجه هوشنگ سیحون آنکه توانست هنر و صنعت نمدمالی را احیا کند و این هنر سنتی را با هنر مدرن در هم آمیزد.

در اغلب زبانهای برنامهنویسی اندیس آرایه از عدد ۰ تعریف شده است. دومین عنصر کمینه در آرایه را پیدا کنید. اولین k عنصر از یک صف را معکوس کنید. پشته را با استفاده از صف پیادهسازی کنید. عناصر یک آرایه را با استفاده از درخت پیشوندی مرتبسازی کنید. مقادیر مثبت و منفی در یک آرایه را مجددا مرتب کنید. مقادیر موجود در یک پشته را مرتب کنید. کوتاهترین مسیر بین دو راس را بیابید. مهندس هوشنگ سیحون سالها عضو و رئیس انجمن معماران ایران بود و همچنین به عنوان عضو کمیته بین المللی ایکوموس زیر نظر یونسکو فعالیت میکرد. مهندس سیحون در سال ۱۹۸۲ به کانادا مهاجرت کرد و تا پایان عمر در ونکوور ساکن بود. استاد هوشنگ سیحون در ۵ خرداد ۱۳۹۳ در ونکوور کانادا درگذشت. هوشنگ سیحون را پدر معماری مدرن ایران میشناسند. هوشنگ سیحون را به مرد آثار ماندگار میشناسند. پروژه فارغالتحصیلی هوشنگ به نمایش گذاشته شد و داوران نشان هنری وزارت فرهنگ و هنر ایران را به او اعطا کردند.

توسط فرمانفرمائیان

فرمانفرمائیان