Массивдер жана Шилтемеленген тизмелер
Массивдер элементтердин коллекциясын сактоо үчүн эң көп колдонулган маалымат структурасы. Көпчүлүк программалоо тилдери массивдерди оңой жарыялоо жана массивдердин элементтерине жетүү ыкмаларын камсыз кылат. Шилтемеленген тизме, тагыраак айтканда, жалгыз шилтемеленген тизме, ошондой эле элементтердин жыйнагын сактоо үчүн колдонула турган маалымат структурасы. Ал түйүндөрдүн ырааттуулугунан турат жана ар бир түйүн ырааттуулуктагы кийинки түйүнгө шилтемеси бар.
1-сүрөттө көрсөтүлгөн, адатта массивге маанилерди жарыялоо жана ыйгаруу үчүн колдонулган коддун бөлүгү. 2-сүрөт массив эстутумда кандай болоорун сүрөттөйт.
Жогорудагы код 5 бүтүн санды сактай турган массивди аныктайт жана аларга 0дөн 4кө чейинки индекстер аркылуу кирүүгө болот. Массивдин маанилүү бир касиети – бүт массив бир эстутум блогу катары бөлүнөт жана ар бир элемент өзүнүн мейкиндигин алат. массивде. Массив аныкталгандан кийин анын өлчөмү бекитилет. Демек, компиляция учурунда массивдин өлчөмүн так билбесеңиз, коопсуз тарапта болуу үчүн жетиштүү чоң массивди аныкташыңыз керек болот. Бирок, көпчүлүк учурда биз бөлүнгөн элементтердин санын азыраак колдонобуз. Ошентип, эстутумдун олуттуу көлөмү иш жүзүндө текке кетет. Ал эми "жетиштүү чоң массив" иш жүзүндө жетиштүү чоң болбосо, программа бузулуп калат.
Байланышкан тизме эстутумду өзүнүн элементтерине өзүнүн эс тутум блогунда өзүнчө бөлүп берет жана жалпы структура бул элементтерди чынжырдагы шилтемелер катары байланыштыруу аркылуу алынат. Шилтемеленген тизмедеги ар бир элементте 3-сүрөттө көрсөтүлгөндөй эки талаа бар. Маалымат талаасында сакталган чыныгы маалыматтар, ал эми кийинки талаада чынжырдагы кийинки элементке шилтеме бар. Шилтемеленген тизменин биринчи элементи шилтемеленген тизменин башы катары сакталат.
дата | кийинки |
3-сүрөт: Шилтемеленген тизменин элементи
4-сүрөт үч элементтен турган шилтемеленген тизмени сүрөттөйт. Ар бир элемент өзүнүн маалыматтарын жана акыркысынан башка бардык элементтерди кийинки элементке шилтемени сактайт. Акыркы элемент кийинки талаада нөлдүк мааниге ээ. Тизмедеги каалаган элементке башынан баштап, керектүү элементке жеткенге чейин кийинки көрсөткүчтү ээрчип кирүүгө болот.
Массивдер жана шилтемеленген тизмелер экөө тең элементтердин жыйнагын сактоо үчүн колдонулат деген мааниде окшош болсо да, алардын эстутумду анын элементтерине бөлүштүрүү үчүн колдонгон стратегияларынан улам айырмачылыктар пайда болот. Массивдер эстутумду анын бардык элементтерине бир блок катары бөлүштүрүшөт жана массивдин өлчөмү иштөө учурунда аныкталышы керек. Бул компиляция учурунда массивдин өлчөмүн билбеген жагдайларда массивдерди натыйжасыз кылат. Шилтемеленген тизме эстутумду анын элементтерине өзүнчө бөлүп бергендиктен, компиляция учурунда тизменин өлчөмүн билбеген жагдайларда бул кыйла натыйжалуу болмок. Декларация жана шилтемеленген тизмедеги элементтерге кирүү массивдеги элементтерге анын индекстерин колдонуу менен түздөн-түз кирүү ыкмасына салыштырмалуу түз болбойт.