• жолдар,
• стектер,
• кезектер;
б) ерікті байланысқан таратумен:
• бірбайланысты тізімдер,
• қосбайланысты тізімдер,
• циклді байланысқан тізімдер,
• ассоциативті тізімдер.
Сызықты емес құрылымдар үшін – көпбайланысты тізімдер, ағаш
тәрізді құрылымдар және жалпы түрдегі графты құрылымдар.
Әртүрлі типті мәліметтерді бағдарламаға оларды қандай да бір
есептеулерде қолдану үшін енгізеді. Осыдан мәліметтердің әртүрлі
типтерінен басқа, оларға қолданылатын опреациялар жиынына ие болу
керек. Мәліметтер типімен бірге кез келген бағдарламалау тілі кейбір
операциялар жиынын береді (жай, стандартты - атомарлы), және қарапайым
опреациялардың теминдерінде күрделі әрекеттерді бейнелеуге мүмкіндік
беретін құрылымдау әдістерін береді.
Маңызды операциялар:
• салыстыру (реттелген типтердің теңдіктері мен ретін тексеру);
• меншіктеу ("теңдікті орнату" командасы);
• түрлендіру (бір типтерді басқаларына түрлендіру).
Бірінші екі операция мәліметтердің көптеген типіне анықталған,
үшіншісі әсіресе құрамдас типтер үшін маңызды.
Құрамдас мәндер конструкторлар көмегімен компонент мәндерінен
құрылады, ал компонент мәндері селекторлар көмегімен алынады.
Осылайша, конструкторлар мен селекторлар – бұл компонент типтерін
құрамдас типтерге және керісінше түрлендіру операциялары. Әрбір
құрылымдау әдісіне өзінің конструкторлар мен селекторлар жұбы сәйкес
келеді, олардың белгіленулері анық ажыратылады:
Ажырату керек:
а) логикалық (абстрактілі) құрылымды;
б) физикалық (нақты) құрылымды.
Біріншісі бағдарламада құрылады және машинаның жадысында оның
көрсетілімінсіз жазылады. Екіншісі ЭЕМ-ның жадысында мәліметтердің
физикалық көрінісін бейнелейді. Жалпы жағдайда логикалық және
физикалық құрылымның арасында дәрежесі және ол бейнеленетін
физикалық ортаның ерекшелігі құрылымның өзінен тәуелді айырмашылық
бар.
Мысалы, Паскальды пайдаланушының көзқарасы бойынша екіөлшемді
массив – бұл бағандар мен жолдардың белгілі бір санына ие тікбұрышты
кесте. Машинаның жадында бұл жады ұяшықтардың сызықты тізбегімен
көрсетіледі, сонымен қатар массивтің элементтері жолдар бойынша
реттелген.
Логикалық
және
физикалық
құрылымдардың
арасындағы
айырмашылықтардың
салдарынан
ЭЕМ-де
логикалық
құрылымды
физикалыққа түрлендіретін және керісінше орындайтын процедуралар болуы
керек. Сондай-ақ бұл процедуралар физикалық құрылымға қатынауды және
оларға әртүрлі операциялар қолдануды қамтамасыз етеді. Бұл операцияларды
логикалыққа да, физикалық құрылымға да қолданатындай етіп қарастыруға
болады. Мысалы, логикалық деңгейде массивтің элементіне қатынау жол мен
бағанның нөмірін көрсету арқылы жүзеге асады, сол жол мен бағанның
қиылысындағы тікбұрышты кестеде берілген элемент бар. Физикалық
деңгейде массивтің элементіне қатынау массивтің бастапқы белгілі
адресінде машинаның жадында жол мен бағанның нөмірлерін жадының
сәйкес элементіне түрлендіретін адрестеу функцияларының көмегімен
жүзеге асады.
Осылайша әрбір мәліметтер құрылымын оның логикалық және
физикалық көрінісімен сипаттауға болады, сонымен қатар осы екі көрініс
деңгейлеріндегі операциялардың жиынтығымен де сипаттауға болады. Мына
жағдай мүмкін, логикалық құрылымдар әртүрлі тілдерде сәйкес келеді де, ал
физикалық - әртүрлі болады (Фортран мен Паскальдағы массивтер).
Физикалық құрылымды оқуда ЭЕМ жадысымен басқару және тарату
мәселесі ескерілу керек. Әзірше (қарапайымдылық үшін) кез келген
физикалық құрылым үшін машина жадысының көлемі шектелмеген деп
есептейік, ал ЭЕМ жадысы – негізгі жадының ұйымына сипаттас
ұяшықтардың (байттардың, сөздердің және т.б.) үздіксіз тізбегімен
шектелген.
ЭЕМ-нің негізгі жадысына сипаттас мәліметтер құрылымын оперативті
құрылымдар деп атаймыз. Сыртқа жадыда ұйымдастырылатын құрылымда
үшін өзінің ерекшеліктері бар, себебі сыртқа жады блоктық сипатқа ие.
Енді классификация сызығына сүйене отырып неғұрлым маңыздысына
өзгеру белгісі бойынша мәліметтердің оперативті құрылымдарын
қарастырамыз. Тек қана логикалық емес, сонымен қатар физикалық
құрылымды қарастырамыз, және логикалыққа, ал кейде физикалыққа да
қолданылатын типтік операцияларды да қарастырамыз.
2.3 Массивтер
Массив – мәліметтер агрегаты, қарапайым оперативті статикалық
құрылым. Сонымен қатар оны барлық компоненттері базалық тип деп
аталатын бір типтес үнемі қолданылатын құрылым деп атауға болады.
Массив – кездейсоқ немесе ерікті қатынауы бар құрылым: оның барлық
компоненттері ерікті түрде таңдалады және бірдей қатынауға болады.
Бөлек компонентті белгілеу үшін массив атына компонентті
таңдауға мүмкіндік беретін индекс қосылады. Индексте массивтің
индекстерінің типі ретінде анықталған типтің мәні болу керек.
Массив индексі – бұл оның компоненттерінің аты. Ол скаляр типті
болу керек (яғни, реттің қатынасы анықталған құрылымдалмаған типті).
Индекстер есептелінеді, және нәтижесі таңдалған компонентті
анықтайды. Яғни, индекстік тұрақтының орнына индекстік өрнекті
қолдануға болады. (бұл көбінесе жиі қателіктерге ұшыратады).
Егер массивтің базалық типі индекс типі сияқты реттелеген болса,
онда бұндай үнемі қолданылатын типте реттің жалғыз қатынасы бар.
ЭЕМ жадысындағы массивтердің көрінісі
Машинаның жадысында массив физикалық түрде бөліктердің
ұзындығы бойынша – әрбіреуі массивтің бір элементін сақтауға
тағайындалған бірдей өрістер мен слоттардың тізбегі ретінде көрсетіледі.
Слоттың өлшемі 1 байт бола алады – жадының адрестелетін минималды
ұяшығы – немесе жадының ұяшықтарының тізбектерінің тобына сәйкес
келеді. Егер слот бірнеше ұяшықтан тұрса, онда оның адресі соңғы сол жақ
ұяшықтың адресі болып табылады, яғни байттың. Сонымен қатар слоттың
ұзындығы да белгілі.
Егер маасив бірөлшемді (вектор) болса, онда оның логикалық
құрылымнан физикалыққа өтуі қиын емес.
Үлкен өлшемді массивтер үшін массивтің логикалық құрылымынан
сызықтық жадыға түрленуі қажет немесе линеризация болу керек. Осылайша
кез келген массивтің физикалық құрылымы вектордың физикалық
құрылымына сай келеді.
Мысалы, 2-өлшемді массив
Жадыда жол бойынша бөлуге болады
Немесе баған бойынша
Немесе орам бойынша (кейбір кезде)
Маасивті логикалық құрылымнан физикалы құрылымға түрлендіру
сәйкес реттеу функциясының көмегімен жүзеге асады. Бұндай функцияның
аргументі элемент индекстерінің (реттелген) жиыны болып табылса, ал мәні
– физикалық құрылымдағы сәйкес келетін слоттың нөмірі болып табылады.
2.4 Жолдар
Жолдар қазіргі кездегі бағдарламалау тілдерінде және ақпараттық
жүйелерде маңызды рөл атқарады.
Жолдар – біртұтас бүтін ретінде қарастырылатын шекті, сызықты
реттелген символдық типтің қарапайым мәліметтерінің тізбегі.
Жалпы жағдайда жол оған операция қолдану процесінде оған кіретін
символдардың құрамы бойынша да, саны бойынша да өзгере алады, яғни
Достарыңызбен бөлісу: |