5-Laboratoriya ishi. Daraxtsimon ma’lumotlar tuzilmasini tadqiq qilish


p tugun joylashgan xotira yacheykasini tozalab qo’yamiz va algoritm yakunlanadi



Yüklə 50,03 Kb.
səhifə9/11
tarix03.12.2023
ölçüsü50,03 Kb.
#171835
1   2   3   4   5   6   7   8   9   10   11
5-Laboratoriya ishi. Daraxtsimon ma’lumotlar tuzilmasini tadqiq -fayllar.org


p tugun joylashgan xotira yacheykasini tozalab qo’yamiz va algoritm yakunlanadi.



Dastur kodi

#include

#include

using namespace std;

class node{

public: int info;

node *left;

node *right;

};

int intrave(node *tree){



if (tree!=NULL){int a=0, b=0;

if (tree->left!=NULL){ a=tree->left->info; }

if (tree->right!=NULL){ b=tree->right->info; }

cout"<"<

intrave(tree->left);

intrave(tree->right); }

return 0;

}

node *del(node *tree,int key){



node *p=new node;

node *next=tree;

node *q=NULL;

while(next!=NULL)

{ if (next->info==key){cout<<"Binar daraxtda "<

p=next;break; }

if (next->info>key){ q=next; next=next->left; }

else {q=next;next=next->right;}

}

if(next==NULL) cout<<"tuzilmada izlangan element yo’q!!!"<



node *v=NULL,*t=NULL,*s=NULL;

if(p->left==NULL) v=p->right;

else if(p->right==NULL) v=p->left;

if((p->left!=NULL)&&(p->right!=NULL)){t=p; v=p->right; s=v->left;}

while(s!=NULL){

t=v;


v=s;

s=v->left;

}

if((t!=NULL)&&(t!=p)){



t->left=v->right;

v->right=p->right;

v->left=p->left;

}

if(t==p) v->left=p->left;



if(q==NULL){

cout

tree=v;

delete(p);

return tree;

}

if(p==q->left)



q->left=v;

else q->right=v;

delete(p); // o’chirilgan element joylashgan xotira yacheykasini tozalash

return tree;

}

int main()



{ int n,key,s; node *tree=NULL,*next=NULL;

cout<<"n="; cin>>n;

for(int i=0; i

node *p=new node;

node *last=new node;

cin>>s;


p->info=s;

p->left=NULL;

p->right=NULL;

if(i==0){tree=p; next=tree; continue; }

next=tree;

while(1)

{ last=next;

if(p->infoinfo)next=next->left;

else next=next->right;

if(next==NULL)break; }

if(p->infoinfo)last->left=p;

else last->right=p;}

cout<

intrave(tree);



cout<<"delete qilinadigan elementni kiriting \n";

cout<<"key="; cin>>key;

tree=del(tree,key);

intrave(tree);

getch();

}

Dasturning ishlashi natijasi



n=10

8 3 9 12 10 15 13 11 16 14

8—chapida=>3 o’ngida=>9

3—chapida=>0 o’ngida=>0

9—chapida=>0 o’ngida=>12

12—chapida=>10 o’ngida=>15

10—chapida=>0 o’ngida=>11

11—chapida=>0 o‘ngida=>0

15—chapida=>13 o’ngida=>16

13—chapida=>0 o’ngida=>14

14—chapida=>0 o’ngida=>0

16—chapida=>0 o’ngida=>0

delete qilinadigan elementni kiriting

key=12


Binar daraxtda 12 Mavjud

8—chapida=>3 o’ngida=>9

3—chapida=>0 o’ngida=>0

9—chapida=>0 o’ngida=>13

13—chapida=>10 o’ngida=>15

10—chapida=>0 o’ngida=>11

11—chapida=>0 o’ngida=>0

15—chapida=>14 o’ngida=>16

14—chapida=>0 o’ngida=>0

16—chapida=>0 o’ngida=>0

Nazorat savollari



  1. Daraxtsimon ma’lumotlar tuzilmasi nima?



  2. Binar daraxt tuzilmasi nima va uni tuzishga misol keltiring?



  3. Binar daraxti tuzilmasi ustida qanday amallar bajatirilishi mumkin?



  4. Binar daraxtini ko’rikdan o’tkazish algoritmi qanday?



  5. Binar daraxtiga yangi element qo’shish algoritmini tushuntiring.



  6. Binar daraxti elementini o’chirish algoritmini tushuntiring.



Topshiriq


Variantlar:




  1. Talabalar ismlari ketma-ketligidan binar daraxt hosil qilish algoritmi va dasturini tuzing.



  2. Berilgan binar daraxtning terminal tugunlaridan tashkil topgan yangi muvozanatlangan binar daraxt hosil qilish algoritmi va dasturini tuzing.



  3. Berilgan binar daraxtning har bir tuguni chap tomoni tugunlaridan tashkil topgan muvozanatlangan binar daraxt hosil qilish algoritmi va dasturini tuzing.



  4. Daraxt tugunlari haqiqiy sonlar bo’lsin. Daraxt barcha tugunlarini o’rta arifmetigini hisoblash algoritmi va dasturini keltiring.



  5. Daraxt tugunlari haqiqiy sonlar bo’lsin. Yozuvi manfiy bo’lgan daraxt tugunlarini o’chiruvchi dastur tuzing.



  6. Daraxt tugunlari haqiqiy sonlar bo’lsin. Yozuvi berilgan kalit qiymatidan katta bo’lgan daraxt tugunlarini o’chiruvchi dastur tuzing.





  1. Berilgan binar daraxtning balandligini aniqlash algoritmi va dasturini keltiring.



  2. Berilgan binar daraxtning har bir juft elementi balandligini aniqlash algoritmi va dasturini keltiring.



  3. Berilgan binar daraxtning terminal tugunlari balandliklarini aniqlash algoritmi va dasturini keltiring.



  4. Daraxt tugunlari haqiqiy sonlar bo’lsin. Daraxt barcha tugunlarini o’rta arifmetigiga teng qiymatli tugunni berilgan binar daraxtga kiritish algoritmi va dasturini keltiring.



  5. Yüklə 50,03 Kb.

    Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin