داده ساختارهای فشرده
در علوم کامپیوتر ،داده ساختار فشرده داده ساختاری است که از فضایی استفاده میکند که به نظریه اطلاعات کران پایین نزدیک است؛ ولی (برخلاف دیگر نمایشهای فشرده) هنوز برای عملیاتها کارایی دارد. مفهوم این داده ساختار اولین بار توسط جاکوبسون معرفی شد. با مفهوم رمز گذاری آرایه بیتی، درخت (بدون برچسب) و گراف مسطح. برخلاف الگوریتم فشردهسازی بیاتلاف دادهها، بهطور کلی داده ساختار فشرده، این ویژگی را دارد که میتوان بدون ناهم فشرده کردن دادهها از آنها استفاده کرد.
فرض کنید که Z تعداد بیتهای مورد نیاز برای برای ذخیرهٔ برخی دادهها است. نمایش آن به شرح زیر است:
- داده ساختار ضمنی: بیت از فضا
- داده ساختار فشرده: بیت از فضا
- داده ساختار متراکم: بیت از فضا
برای مثال، یک داده ساختار
داده ساختار ضمنی، بر اساس جایشگتهای مختلف ورودی میتواند کاهش بیاید. مثال شناخته شدهٔ آن هرم است.
درخت پیشوندی و آرایهٔ پیشوندی
در درخت پیشوندی میتوانیم در زمان دلخواه که با طول رشته مناسب است، جستجو کنیم، و در مورد آرایهٔ پیشوندی نیز، در این داده ساختار به نقطهای که شاخص اش به آن اشاره دارد بر میگردد. این دو داده ساختار بسیار کاربردی هستند مخصوصاً زمانی که فقط با یک کاربر در ارتباط اند یا فقط در موتور جستجو استفاده میشود.
اکنون مشکل ما آن است که آیا میتوانیم داده ساختار درخت را در فضای قابل ملاحظهٔ کمتری نمایش دهیم؟
بهطور مثال در درخت جستحوی دودویی:
- اندازه: گره داخلی وبرگ
- عملکرد: بچه، پدر، سایز زیر درخت، دادههای برگها
واضح است که برای هر گره درخت در حدود
به عنوان مثال درخت پیشوندی کامل در حدود ۵ یا ۶ برابر آرایهٔ پیشوندی فضا از حافظه را نیاز دارد. (به عنوان مثال فقط مراجع برگها را در نظر بگیرید)
فشردگی
درخت فشرده
این نظریه ابتدا با جاکوبسون شروع شد و سپس دیگران نیز با آن همراه شدند.
عدد کاتالان = اوردر ریشهٔ جنگل یا درخت دودویی =
پس کران بالای آن در حدود
برای درخت
در این روش برای نمایش درخت از علامت پرانتر استفاده میکنیم. به این صورت عمل میکنیم که برای هر گره ")" قرار میدهیم سپس زیر درخت، در آخر "(". در عمل در این روش هر گره ۲ بیت فضا از حافظه را به خود اختصاص میدهد.
بهطور مثال برای شکل زیر رشته دودویی مقابل رشتهٔ آن است: " (((())())((())()())) "
برای هرم
اگر به هرم مانند یک درخت دودویی نگاه کنیم، و سپس به هر گره آن (گره معادل عدد یک) و یک عدد اضافه کنیم (معادل عدد صفر) سپس شروع به خواندن سطر به سطر آن کنیم (مطابق شکل زیر):
در نتیجه، یه طور مثال برای هرمی مانند شکل زیر، برداری مانند "۱۱۱۱۰۱۱۱۰۰۱۰۰۰۰۰۰" خواهیم داشت، که طول آن برابر
پیشنهاد کلیدی جاکوبسون
جاکوبسون پیشنهادی برای عملیا بردارهای بیتی داشت. به این صورت که چند تعریف جدید را بیان کرد.
- برای.
به عبارت دیگر
در نتیجه برای درخت دودویی داریم :
لغتنامه فشرده
لغتنامه نمایه ساز فشرده، رتبه لغتنامه نیز نامیده میشود . بر اساس تعدادی از تکنیکهای نمایش فشرده، از جمله درخت دودویی، چندمجموعه و درخت پسوندی.
مشکل اساسی ذخیرهسازی زیر مجموعهٔ S از مجموعه جهانی (
یک نمایش ساده وجود دارد که از
منابع
- ↑ Jacobson, G. J (1988). "Succinct static data structures".
- ↑
- ↑ Jacobson, G. (1989). "Space-efficient static trees and graphs" (PDF). Archived from the original (PDF) on 4 June 2016. Retrieved 28 June 2016.