Laboratoriya ishi -22 Mavzu: Binar daraxtlar. Daraxt balandligi va ko’ruv. Ishdan maqsad
Download 219.69 Kb. Pdf ko'rish
|
22 labaratoriya 611 19 gh Qosimova Yulduzxon
- Bu sahifa navigatsiya:
- Topshiriqlar
LABORATORIYA ISHI -22 Mavzu: Binar daraxtlar. Daraxt balandligi va ko’ruv. Ishdan maqsad. Ushbu laboratoriya ishida talabalar Binar daraxtlar tushunchasi bilan tanishib chiqishi hamda daraxt balandligi va ko’ruvni ishlashni o’rganishlari kerak. Daraxtlarni aks ettirish uchun ikkita usul mavjud: massivni ishlatadigan ketma-ket tasvirlangan bog'langan ro'yxatni ishlatadigan dinamik tugunni namoyish etish. Bu erda biz ikkitomonlama daraxtlarni massivli tasvirlash haqida gaplashamiz. Buning uchun biz BT tugunlarini raqamlashimiz kerak. Ushbu raqamlash 0 dan (n-1) yoki 1 dan n gacha boshlanishi mumkin. Massivdagi tugunlar va ularning ota-ona va bola tugunlarining pozitsiyalarini chiqaramiz. Biz 0 indeksiga asoslangan ketma- ketlikni qo'llaganimizda, Faraz qilaylik, ota tugun - bu p indeks. Keyin, left_child tuguni (2 * p) + 1 indeksida. Right_child tuguni (2 * p) + 2 indeksida. Ildiz tuguni 0 indeksida. left_child 1-indeksda. Right_child 2-indeksda. Biz 1 indeksga asoslangan ketma-ketlikni ishlatganimizda, deylik, ota tugun p indeksda, Right_node indeksda (2 * p). Left_node (2 * p) +1 indeksida. Ildiz tuguni indeks 1da. left_child indeks 2da. Right_child 3-indeksda.
Dastur kodi: #include using namespace std; char tree[10]; int rootnode(char key){ if(tree[0] != '\0')
cout<<"Tree already had root"; else
tree[0] = key; return 0; } int leftchild(char key, int parent){ if(tree[parent] == '\0') cout <<"\nCan't set child at"<<(parent * 2) + 1<<" , no parent found"; else tree[(parent * 2) + 1] = key; return 0; } int rightchild(char key, int parent){ if(tree[parent] == '\0') cout<<"\nCan't set child at"<<(parent * 2) + 2<<" , no parent found"; else tree[(parent * 2) + 2] = key; return 0; } int traversetree(){ cout << "\n"; for(int i = 0; i < 10; i++){ if(tree[i] != '\0') cout< else
cout<<"-"; }
return 0; int main(){ rootnode('A'); rightchild('C', 2); leftchild('D', 0); rightchild('E', 1); rightchild('F', 2); traversetree(); return 0; } Download 219.69 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling