Ma'lumotlar tarkibi - Data structure Buni chalkashtirib yubormaslik kerak ma'lumotlar turi.
Vikipediyaning ma'lumotlar tuzilishi haqida ma'lumot uchun qarang Vikipediya: Ma'muriyat § Ma'lumotlarning tuzilishi va rivojlanishi.
A deb nomlanuvchi ma'lumotlar tuzilishi xash jadvali.
Yilda Kompyuter fanlari, a ma'lumotlar tuzilishi ma'lumotlarni tashkil qilish, boshqarish va saqlash formatini yaratishga imkon beradi samarali kirish va o'zgartirish.[1][2][3] Aniqrog'i, ma'lumotlar tuzilishi bu to'plamdir ma'lumotlar qiymatlari, ular orasidagi munosabatlar va ma'lumotlarga qo'llanilishi mumkin bo'lgan funktsiyalar yoki operatsiyalar.[4] Mundarija
1Foydalanish
2Amalga oshirish
3Misollar
4Tilni qo'llab-quvvatlash
5Shuningdek qarang
6Adabiyotlar
7Bibliografiya
8Qo'shimcha o'qish
9Tashqi havolalar
Foydalanish
Ma'lumotlar tuzilmalari asos bo'lib xizmat qiladi mavhum ma'lumotlar turlari (ADT). ADT ma'lumotlar turining mantiqiy shaklini belgilaydi. Ma'lumotlar tarkibi ma'lumotlar turining fizik shaklini amalga oshiradi.[5] Ma'lumotlar tuzilmalarining har xil turlari har xil turdagi dasturlarga mos keladi, ba'zilari esa aniq vazifalar uchun juda ixtisoslashgan. Masalan, relyatsion ma'lumotlar bazalari odatda foydalanish B daraxti ma'lumot olish uchun indekslar,[6] esa kompilyator dasturlardan odatda foydalaniladi xash jadvallar identifikatorlarni qidirish.[7] Ma'lumotlar tuzilmalari katta hajmdagi ma'lumotlardan foydalanish uchun katta hajmdagi ma'lumotlarni samarali boshqarish vositasini taqdim etadi ma'lumotlar bazalari va Internetni indeksatsiya qilish bo'yicha xizmatlar. Odatda, samarali ma'lumotlar tuzilmalari samarali loyihalashtirishning kalitidir algoritmlar. Ba'zi rasmiy dizayn usullari va dasturlash tillari dasturiy ta'minotni loyihalashda asosiy tashkil etuvchi omil sifatida algoritmlarni emas, balki ma'lumotlar tuzilmalarini ta'kidlash. Ma'lumotlar tuzilmalari ikkalasida ham saqlangan ma'lumotlarni saqlash va olishni tashkil qilish uchun ishlatilishi mumkin asosiy xotira va ikkilamchi xotira.[8] Amalga oshirish
Ma'lumotlar tuzilmalari odatda a qobiliyatiga asoslanadi kompyuter a tomonidan ko'rsatilgan xotirani istalgan joyidan olish va saqlash uchun ko'rsatgich- a ni ifodalovchi bit ip xotira manzili, o'zi xotirada saqlanishi va dastur tomonidan boshqarilishi mumkin. Shunday qilib, qator va yozuv ma'lumotlar tuzilmalari ma'lumotlar elementlari manzillarini hisoblash bilan asoslanadi arifmetik amallar, esa bog'langan ma'lumotlar tuzilmalarima'lumotlar tarkibidagi manzillarni strukturaning o'zida saqlashga asoslangan.
Ma'lumotlar strukturasini amalga oshirish odatda to'plamini yozishni talab qiladi protseduralar ushbu tuzilmaning misollarini yaratadigan va boshqaradigan. Ma'lumotlar strukturasining samaradorligini ushbu operatsiyalardan alohida tahlil qilish mumkin emas. Ushbu kuzatish an nazariy tushunchasini rag'batlantiradi mavhum ma'lumotlar turi, bilvosita unda bajarilishi mumkin bo'lgan operatsiyalar bilan aniqlanadigan ma'lumotlar tuzilishi va ushbu operatsiyalarning matematik xususiyatlari (ularning maydoni va vaqt xarajatlari bilan birga).[9] Misollar
Asosiy maqola: Ma'lumotlar tuzilmalari ro'yxati Odatda oddiyroq asosda qurilgan ma'lumotlar tuzilmalarining ko'p turlari mavjud ibtidoiy ma'lumotlar turlari:[10]
An qator - bu ma'lum bir tartibdagi bir qator elementlar, odatda barchasi bir xil (tilga qarab, alohida elementlar yoki barchasi bir xil turga majburlanishi mumkin yoki deyarli har qanday turdagi bo'lishi mumkin). Elementlarga qaysi element zarurligini ko'rsatish uchun butun sonli indeks yordamida kirish mumkin. Oddiy dasturlar massiv elementlari uchun tutashgan xotira so'zlarini ajratadi (lekin bu har doim ham zarurat emas). Massivlar sobit uzunlikda yoki o'lchamlarini o'zgartirishi mumkin.
A bog'langan ro'yxat (shuningdek, faqat chaqirilgan ro'yxat) - bu har qanday tugunning o'zi qiymatga ega bo'lgan va bog'langan ro'yxatdagi keyingi tugunga ishora qiluvchi har qanday turdagi ma'lumotlar elementlarining chiziqli to'plamidir. Bog'langan ro'yxatning massivdan asosiy ustunligi shundaki, qiymatlar har doim samarali tarzda kiritilishi va ro'yxatning qolgan qismini boshqa joyga ko'chirmasdan olib tashlanishi mumkin. Kabi ba'zi boshqa operatsiyalar tasodifiy kirish ma'lum bir elementga nisbatan, ammo ro'yxatlarda massivlarga qaraganda sekinroq.
A yozuv (shuningdek, deyiladi panjara yoki tuzilmaviy) an yig'ilgan ma'lumotlar tuzilishi. Yozuv - bu boshqa qiymatlarni o'z ichiga olgan qiymat, odatda belgilangan son va ketma-ketlikda va odatda nomlar bilan indekslanadi. Yozuvlarning elementlari odatda chaqiriladi dalalar yoki a'zolar.
A birlashma bir qator ruxsat berilgan ibtidoiy turlardan qaysi biri o'z misolida saqlanishi mumkinligini aniqlaydigan ma'lumotlar tuzilmasi, masalan. suzmoq yoki uzun tamsayı. A bilan qarama-qarshi yozuv, unda suzuvchi bo'lishi mumkin va butun son; holbuki birlashmada bir vaqtning o'zida bitta qiymat mavjud. Eng keng a'zoning ma'lumot turini saqlash uchun etarli joy ajratilgan.
A belgilangan birlashma (shuningdek, deyiladi variant, variantli yozuv, kamsitilgan birlashma, yoki uyushmagan birlashma) kengaytirilgan turdagi xavfsizlik uchun uning joriy turini ko'rsatadigan qo'shimcha maydonni o'z ichiga oladi.
An ob'ekt bu ma'lumotlar maydonlarini o'z ichiga olgan ma'lumotlar tuzilmasi, masalan, yozuvlar kabi, har xil usullari ma'lumotlar tarkibida ishlaydigan. Ob'ekt bu taksonomiyadan sinfning xotiradagi nusxasi. Kontekstida ob'ektga yo'naltirilgan dasturlash, yozuvlar sifatida tanilgan oddiy eski ma'lumotlar tuzilmalari ularni narsalardan farqlash.[11]
Bunga qo'chimcha, grafikalar va ikkilik daraxtlar boshqa keng tarqalgan ishlatiladigan ma'lumotlar tuzilmalari.
Tilni qo'llab-quvvatlash
Ko'pchilik assambleya tillari va ba'zilari past darajadagi tillar, kabi BCPL (Asosiy birlashtirilgan dasturlash tili), ma'lumotlar tuzilmalari uchun o'rnatilgan yordam yo'q. Boshqa tomondan, ko'pchilik yuqori darajadagi dasturlash tillari va ba'zi bir yuqori darajadagi yig'ilish tillari, masalan MASM, yozuvlar va massivlar kabi ba'zi ma'lumotlar tuzilmalari uchun maxsus sintaksis yoki boshqa o'rnatilgan yordamga ega bo'ling. Masalan, C(BCPLning to'g'ridan-to'g'ri avlodi) va Paskal tillarni qo'llab-quvvatlash tuzilmalar va vektorlarga qo'shimcha ravishda yozuvlar (bir o'lchovli) massivlar) va ko'p o'lchovli massivlar.[12][13] Ko'pgina dasturlash tillari ba'zi bir xususiyatlarga ega kutubxona ma'lumotlar tuzilishini amalga oshirishni turli dasturlar tomonidan qayta ishlatilishiga imkon beradigan mexanizm. Zamonaviy tillar odatda eng keng tarqalgan ma'lumotlar tuzilmalarini amalga oshiradigan standart kutubxonalar bilan ta'minlanadi. Bunga misollar C ++Standart shablon kutubxonasi, Java Collections Framework, va Microsoft.NET Framework.
Zamonaviy tillar ham umuman qo'llab-quvvatlaydi modulli dasturlash, orasidagi ajratish interfeys kutubxona moduli va uni amalga oshirish. Ba'zilar beradi shaffof bo'lmagan ma'lumotlar turlari mijozlarga dastur tafsilotlarini yashirishga imkon beradi. Ob'ektga yo'naltirilgan dasturlash tillari, kabi C ++, Javava Kichik munozarasi, odatda foydalaning sinflar shu maqsadda.
Ko'pgina ma'lum ma'lumotlar tuzilmalari mavjud bir vaqtda bir nechta hisoblash zanjirlariga bir vaqtning o'zida ma'lumotlar strukturasining bitta aniq nusxasiga kirishga imkon beradigan versiyalar.[14]