Рекурсивни алгоритми в двоични дървета.
Бин.дърв.мд се обхождат по няколко н-на:
-както и в широчина
Често е необх.да намерим стстите на разл. структурни парам.за 1 дърво,само по дадена връзка връзка към дървото.Следв.прог. съдържа рекурс.ф-ии за изчисл.броя на възлите и височината на дадено дърво.
int count (link h)
{ if ( h==NULL ) return 0;
return count (h->l) + count (h->r) + 1;} int height ( link h )
{ int u,v;
if ( h == NULL ) return -1;
u = height ( h->l ); v = height ( h->r);
if ( u > v ) return u+1; else return v+1; }
Др.ф-я ни показва рекурс.алг.за обхождане на дърво е този за отпечатване на дърво. Ако отпеч.елемента преди рекурс.викане,
получаваме прередно обхожд.Тази прог.допуска че елем.в възлите са символи:
void printnode ( char c, int h )
{ int i;
for ( i = 0; i < h; i++) printf (“ ”);
printf (“%c\n”, c); } void show ( link x, int h )
{ if ( x==NULL) {printnode(‘*’,h); return; } show (x -> r, h+1);
printnode (x -> item, h); show (x ->l, h+1); }
Сортировки.Селективна сортировка.Сортиране чрез вмъкване.Примери.
В много сортиращи прил. е възм. метода. к-то тр. да се избер. да е прост. алгорит. Поради сл. причини: 1 – во. Често сорт. прог. се изп. само веднъж и ако елем. сорт. не е по – бавна от др. части на прогр. не е нужно да се търси по – бърз метод. Ако бр. на сорт ел. не е мн. гол.(до няк. 100) също може да се избере пост метод. 2 – ро. Елементар. сорт са по удобни за малки фаилове. Бав. методи са добри също за почти сортирани фаилове. или такива които съдърж.голям бр.повтар. се ключове.
Сподели с приятели: |