Ko'pincha jiddiy dasturlarda ishlash jarayonida o‘lchami va strukturasi o'zgarishi kerak bo'lgan ma'lumotlardan foydalanish kerak bo‘ladi. Bu erda dinamik massivlar yordam bermaydi, chunki qancha xotira ajratish kerakligini oldindan aytish mumkin bo'lmaydi - bu faqat ishlash jarayonida aniqlanadi. Masalan, matnni tahlil qilish, unda qaysi so‘zlar va nechta so‘z borligini aniqlash hamda bu so‘zlarni alifbo tartibida joylashtirilish masalasi shu turkumdagi masalalar toifasiga kiradi.
Ko'pincha jiddiy dasturlarda ishlash jarayonida o‘lchami va strukturasi o'zgarishi kerak bo'lgan ma'lumotlardan foydalanish kerak bo‘ladi. Bu erda dinamik massivlar yordam bermaydi, chunki qancha xotira ajratish kerakligini oldindan aytish mumkin bo'lmaydi - bu faqat ishlash jarayonida aniqlanadi. Masalan, matnni tahlil qilish, unda qaysi so‘zlar va nechta so‘z borligini aniqlash hamda bu so‘zlarni alifbo tartibida joylashtirilish masalasi shu turkumdagi masalalar toifasiga kiradi.
Bunday hollarda ko‘rsatgichlar bilan bog'langan o‘zida alohida elementlar ifodalaydigan maxsus strukturali ma'lumotlaridan foydalaniladi.
Bunday hollarda ko‘rsatgichlar bilan bog'langan o‘zida alohida elementlar ifodalaydigan maxsus strukturali ma'lumotlaridan foydalaniladi.
Har bir element (tugun) ikkita xotira sohasidan ma'lumotlar maydoni va ko‘rsatgichlardan iborat bo‘ladi.
Ko‘rsatgichlar - uchbu element mantiqiy bog'langan aynan shu turdagi boshqa tugunlarning (elementlarning) manzillari hisoblanadi. C++ tili havolalarni tashkillashtirish uchun ko'rsatkich-o'zgaruvchilardan foydalanadi. Bunday strukturaga yangi tugun (element) qo'shilganda, xotiraning yangi bloki ajratiladi va ushbu elementning mavjudlari bilan ko‘rsatgichlar yordamida bog‘lanishlar o'rnatiladi. Ro‘yxatdagi oxirgi elementni belgilash uchun bo'sh ko‘rsatgichlar (NULL) ishlatiladi.
Chiziqli ro'yxat
Eng oddiy holatda, har bir tugun faqat bitta havolani o'z ichiga oladi. Aniqlik uchun biz matnni chastotali tahlil qilish - matnda topilgan barcha so'zlar va ularning sonini aniqlash masalasini qarayli. Bunday holda, elementning ma'lumotlar maydoni satr (maksimal 40 belgidan oshmaydi) va butun sondan iborat bo‘ladi.
Shuningdek, har bir element keyingi elementga havolani ham o'z ichiga oladi. Ro'yxatdagi oxirgi element NULL qiymatli ko‘rsatgichli maydoniga ega bo‘ladi. Ro'yxatni yo'qotmaslik uchun biron biror manzilda (o'zgaruvchida) uning birinchi tugunining manzilini saqlashimiz kerak - bu ro'yxatning "boshi" deb ataladi. Dastur ikkita yangi ma'lumotlar turini e'lon qilinishi zarur - ro'yxat tuguni Node va unga ko'rsatgich PNode. Tugun - bu uchta maydonni o'z ichiga olgan struktura - satr, butun son va aynan shunday tugunga ko'rsatgich.
C++tilining qoidalari ko‘ra bunday struktura e’loni quyidagicha bo‘ladi: