Milliy universiteti



Download 3,37 Mb.
Pdf ko'rish
bet71/119
Sana21.01.2022
Hajmi3,37 Mb.
#394709
1   ...   67   68   69   70   71   72   73   74   ...   119
Bog'liq
informatika

struct Zanjir 

 int element; 
 Zanjir * keyingi; 
}; 
Программа матни: 
#include  
struct Zanjir { int element; Zanjir * keyingi;}; 
Zanjir * Element_Joylash(Zanjir * z, int yangi_elem) 

 Zanjir * yangi=new Zanjir; 
 yangi->element=yangi_elem; 
 yangi->keyingi=0; 
 if(z)    
 
// рўйхат бўш эмас 
 { 
  Zanjir * temp=z; 
  while(temp->keyingi) 
   temp=temp->keyingi;// рўйхатнинг охирги элементини 
// топиш  
  temp->keyingi=yangi;// янги элементни рўйхат 
// охирига қўшиш  
 }    
 
 
 else z=yangi;  
// рўйхат бўш 
 return z;    
// рўйхат боши адресини қайтариш 

Zanjir * Element_Uchirish(Zanjir * z, int del_elem) 

 if(z)  
 { 
  Zanjir * temp=z; 
  Zanjir * oldingi=0;  // жорий элементдан олдинги  
// элементга кўрсаткич 
  while (temp) 
  { 


 
72 
   if (temp->element==del_elem) 
   { 
    if(oldingi) 
//ўчириладиган элемент биринчи эмас 
    {  
 // ўчириладиган элементдан олдинги элементни  
 // кейинги элементга улаш 
oldingi->keyingi = temp->keyingi; 
     delete temp;   
// элементни ўчириш 
     temp=oldingi->keyingi; 
    } 
    else 
    { 
 
 // ўчириладиган элемент рўйхат бошида 
     z=z->keyingi; 
     delete temp; 
     temp=z; 
    } 
   } 
   else // элемент ўчириладиган сонга тенг эмас 
   { 
    oldingi=temp; 
    temp=temp->keyingi; 
   } 
  } 
 } 
 return z; 

void Zanjir_Ekranga(Zanjir * z) 

 cout<<"Zanjir elementlari:"<
 Zanjir * temp=z; 
 while(temp) 
 { 
  cout<element<<' '; 
  temp=temp->keyingi; 
  } 
 cout<

Zanjir * Zanjirni_Uchirish(Zanjir * z) 

 Zanjir * temp=z; 
 while(z) 
  { 
   z=z->keyingi; 
   delete temp; 
  } 
 return z; 

int main() 

 Zanjir * zanjir=0; 


 
73 
 int son, del_element; 
 do  
 { 
  cout<<”\nSonni kiriting (0-jaryon tugatish): “;    
  cin>>son; 
  if(son) zanjir=Element_Joylash(zanjir,son); 
 } while (son); 
 Zanjir_Ekranga(zanjir); 
 cout<<"\nO’chiriladigan elementni kiriting: "; 
 cin>>del_element; 
 zanjir= Element_Uchirish(zanjir,del_element); 
 Zanjir_Ekranga(zanjir); 
 Zanjir = Zanjirni_Uchirish(zanjir); 
 return 0; 

Programmaning  bosh  funktsiyasida  chiziqli  ro'yxat  hosil  qilish  uchun  Zanjir  turidagi  zanjir 
o'zgaruvchisi  aniqlangan  bo'lib,  unga  bo'sh  ko'rsatkich  qiymati  0  berilgan  (uning  ekvivalenti  - 
NULL). Keyin takrorlash operatori tanasida klaviaturadan butun son o'qiladi va Element_Joylash() 
funktsiyasini  chaqirish  orqali  bu  son  ro'yxatga  oxiriga  qo'shiladi.  Funktsiya  yangi  hosil  bo'lgan 
ro'yxat boshining adresini yana zanjir o'zgaruvchisiga qaytaradi. Agar klaviaturadan 0 soni kiritilsa 
ro'yxatni hosil qilish jarayoni tugaydi. Faraz qilaylik quyidagi sonlar ketma-ketligi kiritilgan bo'lsin: 
1,2,3,3,5,0. U holda hosil bo'lgan ro'yxat quyidagi ko'rinishda bo'ladi  
 
 
Beshta sondan tashkil topgan chiziqli ro'yxat 
 
Hosil  bo'lgan  ro'yxatni  ko'rish  uchun  Zanjir_Ekranga()  funktsiyasi  chaqiriladi  va  ekranda 
ro'yxat elementlari chop etiladi. Ro'yxat ustida amal sifatida berilgan son bilan ustma-ust tushadigan 
elementlarni  o'chirish  masalasi  qaralgan.  Buning  uchun  o'chiriladigan  son  del_element 
o'zgaruvchiga  o'qiladi  va  u  Element_Uchirish()  funktsiyasi  chaqirilishida  argument  sifatida 
uzatiladi. Funktsiya bu son bilan ustma-ust tushadigan ro'yxat elementlarini o'chiradi (agar bunday 
element  mavjud  bo'lsa)    va  o'zgargan  ro'yxat  boshining  adresi-ni  zanjir  o'zgaruvchisiga  qaytarib 
beradi.  Masalan,  ro'yxatdan  3  soni  bilan  ustma-ust  tushadigan  elementlar  o'chirilgandan  keyin  u 
quyidagi ko'rinishga ega bo'ladi. 
 
Ro'yxatdan 3 sonini o'chirilgandan keyingi ko'rinish 
 
O'zgargan  ro'yxat  elementlari  ekranga  chop  etiladi.  Programma  oxirida,  Zanjirni_Uchirish() 
funktsiyasini  chaqirish  orqali  ro'yxat  uchun  dinamik  ravishda  ajratilgan  xotira  bo'shatiladi  (garchi 
bu ishning programma tugashi paytida bajarilishining ma'nosi yo'q). 
Dinamik strukturalarda o'zgartirishlar (ro'yxatga element qo'shish yoki o'chirish) nisbatan kam 
amallarda bajarilishi, ular vositasida masalalarni samarali echishning asoslaridan biri hisoblanadi.    


 
74 

Download 3,37 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   119




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish