Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Задание 5.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <conio.h>
- using namespace std;
- struct node
- {
- int info;
- node *l,*r;//левая и правая часть дерева
- };
- node *tree=NULL;//структура типа деерево
- void push(int a,node **t) //функция записи в бинарное дерево
- {
- if ((*t)==NULL)
- {
- (*t)=new node; // выделяем память под дерево
- (*t)->info=a;
- (*t)->l=(*t)->r=NULL;
- return;
- }
- if (a>(*t)->info) push(a,&(*t)->r);// если аргумент а больше чем текущий , кладём его вправо
- else push (a,&(*t)->l);
- }
- void print (node *t,int u) //функция отображения дерева
- {
- if (t==NULL) return;
- else
- {
- print(t->l,++u);
- for (int i=0;i<u;++i) cout<<"|";
- cout<< t->info<<endl;
- u--;
- }
- print(t->r,++u); // с помощью рекурсии посещаем левое поддерево
- }
- int srd (node *t,int u,int f) //функция отображения дерева
- {
- int k=f;
- if (t==NULL) return k;
- if (t->l==NULL || t->r==NULL)
- {
- k+=t->info;
- }
- u--;
- srd(t->r,++u,srd(t->l,++u,k)); // с помощью рекурсии посещаем левое поддерево
- }
- void main ()
- {
- setlocale(LC_ALL,"Rus");
- int n;
- int s;
- cout<<"Vvedite kol-vo elementov"<<endl;
- cin>>n;
- for (int i=0;i<n;++i)
- {
- cout<<"vvedite 4islo ";
- cin>>s;
- push(s,&tree);
- }
- cout<<"Vashe derevo\n";
- print(tree,0);
- cout<<"\nSrednee znachenie\n";
- cout<<srd(tree,0,0)/n;
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement