Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi
Download 247.96 Kb. Pdf ko'rish
|
mta oraliq pdf
- Bu sahifa navigatsiya:
- MT klassifikatsiya qilishda
- Dinamik ma’lumotlar tuzilmasi
O`ZBEKISTON RESPUBLIKASI AXBOROT
TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Dasturiy injinering fakulteti 2-kurs 311-19-guruh talabasi
Mirobidov Ibrohimning Ma’lumotlar tuzilmasi va algoritmlar fanidan bajargan
Oraliq nazorat ishi
Variant №50 1. Ma’lumotlar tuzilmasi klassifikatsiyasi. 2. Dinamik turdagi ma’lumotlar tuzilmasi royxatni tushuntiring. 3. Ro’yhatdan nusxa ko’chirish dasturini tuzing.
dastur ishlashi mobaynida o‘zgarishi hisoblanadi. Masalan, agar dastur bajarilishi mobaynida elementlar soni va/yoki ular orasidagi munosabatlar o‘zgarsa, u holda bunday MT dinamik ma’lumotlar tuzilmasi, aks holda statik ma’lumotlar tuzilmasi deyiladi. Ma’lumki, matematikada o‘zgaruvchilarni, ularning ba’zi bir kerakli tavsiflariga mos ravishda klassifikatsiya qilish qabul qilingan. O‘zgaruvchilarga misol sifatida quyidagilarni keltirib o‘tish mumkin: haqiqiy o‘zgaruvchilar, kompleks o‘zgaruvchilar, mantiqiy o‘zgaruvchilar, bundan tashqari ba’zi bir qiymatlarni qabul qiluvchi o‘zgaruvchilar va boshqalar. Ma’lumotlarni qayta ishlashda ularni klassifikatsiya qilish ham katta ahamiyatga ega. Bu yerda ham klassifikatsiya qilinayotganda har bir konstanta, o‘zgaruvchi, ifoda yoki funksiya biror bir toifarga tegishli bo‘ladi, degan tamoyilga asoslanadi. Umuman olganda toifalar o‘zgaruvchi yoki ifoda qabul qilishi mumkin bo‘lgan qiymatlar to‘plami orqali tavsiflanadi. Ko‘plab dasturlash tillarida ma’lumotlar
Ma’lumotlarni standart toifalariga quyidagi 5 ta tur o‘zgaruvchilari kiradi: a) butun (INT); b) haqiqiy (FLOAT) ; c) mantiqiy (BOOL); d) belgili (simvol) (CHAR); e) ko‘rsatkichli (*). Foydalanuvchi tomonidan aniqlanadigan toifalar esa: a) sanaladigan; b) diapazonli (oraliqli).
Ma’lumotlarning ixtiyoriy toifasi qiymatlar sohasi va ular ustida bajarilishi mumkin bo‘lgan amallar orqali tavsiflanadi.
2. Dinamik ma’lumotlar tuzilmasi Bizga ma’lumki, massivlar (static tuzilmalar) dasturlash tillarida juda foydali va zaruriy tuzilmadir. Lekin uning ikkita kamchiligi bor: - Uning o’lchaminidasturbajarilishimobaynidao’zgartiribbo’lmaydi; - Tuzilmaorasiga element kiritishuchunqolganlarinisurishkerak. Bu kamchilik bog’langan ro’yhatlar bilan ishlashga olib keladi. Bog’langan ro’yhatlar bir xil toifadagi elementlar (tugunlar) ketma- ketligi bo’lib, ular xotirada turli joylarga joylashtiriladi va o’zaro bir-biri bilan ko’rsatkichli maydonlar orqali bog’lanadi. Bog’langan ro’yhatlarni dasturda turlicha amalga oshirish mumkin. Bog’langan ro’yhatlarda elementlarni quyidagicha hosil qilib olamiz:
Information maydonda foydalanuvchining foydali ma’lumoti yoziladi. Ko’rsatkichli maydonga keying elementning xotiradagi adresi yoziladi.Shunday elementlardan tashkil topadigan tuzilmaga chiziqli bir
Bog’langan ro’yhatlarda massivning kamchiliklari bartaraf qilinganligi sababli tuzilma uzunligi va elementlar orasidagi munosabatlar dastur bajarilishi mobaynida o’zgarib turadi. Bu dinamik tuzilma xususiyati hisoblanadi.
- Elementlari orasidagi munosabatlar - Tuzilma uzunligi (elementlar soni) o’zgarib turuvchi tuzilmaga aytiladi. Dinamik tuzilmalarda elementlar xotirada istalgan joyda joylashishi mumkin.Shu sababli ular orasidagi munosabatlar ko’rsatkichlar orqali belgilanadi.Elementlar tuzilmaga kelib qo’shilgan paytda xotiradan bo’sh joy qidirib topiladi va elementlar joylashtiriladi. Shu sababli elementlar xotirada ketma-ket yacheykalarda joylashmagan bo’lishi mumkin.Agar fizik xotira tanqisligi sezilmasa, tuzilma uzunligi oshirilishi mumkin.
3. Masala. Ro’yhatdan nusxa ko’chirish dasturini tuzing.
#include
using namespace std;
node
{
int
info ;
node
* next ; }; void
PrintList ( node
* C) {
if (C
==
NULL )
return ;
node
* P
= C;
cout
"Ro'yxat elementlari = (" ;
while ( P !=
NULL ) { cout
<<
P -> info
;
P
= P -> next ;
if ( P !=
NULL )
cout
","
; }
cout
<<
")" <<
endl ; } void copylist
( node
* Y, node
** Z) {
if (Y
==
NULL ) {
cout
<<
"ro'yxat bo'sh" <<
endl ;
* Z = NULL
; }
else
{
node
* P = Y; node
* Q =
NULL ;
while
( P
!=
NULL ) {
node
newNode
= new
node
; // first create a node (alloc ate memory)
newNode -> info =
P -> info ; // then fill the info
newNode -> next =
NULL ;
if ( Q ==
NULL ) { Q
=
newNode ;
* Z
Q ; }
else
Q -> next
= newNode
;
Q
Q -> next ; } P
=
P -> next
; } } }
void
insertnode ( int
* A, node
** Q) {
node
* N , * P ;
N
=
new node
;
N -> info =
* A;
N -> next
= NULL
;
if ( * Q ==
NULL )
* Q = N ; else
{
P
=
* Q;
while ( P -> next
!=
NULL )
P
= P -> next ;
P -> next
= N ; } }
int
main () {
node
* z
= NULL
;
node
* duplicate
= NULL
;
int
e ;
cout
"Elementlar soni : " ;
cin
>> e ;
cout
"Elementlarni probel bilan kiriting : " ;
while ( e -- ) { int
temp
;
cin
>> temp
;
insertnode ( & temp , & z );
}
cout
" Berilgan ro'yxat : " <<
endl ;
PrintList ( z );
copylist ( z , & duplicate );
cout
" Nusxalangan ro'yxat : " <<
endl ;
PrintList ( duplicate );
cin
>> e ;
return
0 ; }
Natijasi: Document Outline
Download 247.96 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling