Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void kopiec_BUDUJ(int *tab, int roz);
- void kopiec_PRZYWR(int *tab,int i, int n);
- void kopiec_wypelnij( int *tab, int roz);
- void kopiec_WSTAW(int *tab, int wartosc);
- void kopiec_WYSWIETL(int *tab, int roz);
- int LEFT(int i);
- int RIGHT(int i);
- int PARENT(int i);
- int main()
- {
- int rozmiar;
- int*A;
- char akcja;
- // TWORZENIE TABLICY
- printf("Podaj rozmiar tablicy: ");
- fflush(stdin);
- scanf("%d", &rozmiar);
- A=(int* )malloc(sizeof(int)*rozmiar);
- //ROZPOCZECIE AKCJI
- while(1)
- {
- printf("Co chcesz zrobic?\n b - BUDUJ KOPIERC \n w - WYPELNIJ TABLICE \n s - WYSWIETL KOPIEC \n");
- fflush(stdin);
- scanf("%c", &akcja);
- switch(akcja)
- {
- case 'b':
- kopiec_BUDUJ(A, rozmiar);
- break;
- case 'w':
- kopiec_wypelnij(A, rozmiar);
- break;
- case 's':
- kopiec_WYSWIETL(A, rozmiar);
- break;
- case 'q':
- return;
- }
- }
- return 0;
- }
- void kopiec_wypelnij(int*tab, int roz)
- {
- int i;
- for(i=0; i<roz; i++)
- {
- printf("\n Podaj wartosc dla elementu: ");
- fflush(stdin);
- scanf("%d", &tab[i]);
- }
- }
- void kopiec_WYSWIETL(int *tab, int roz)
- {
- int i;
- for(i=0;i<roz;i++)
- {
- printf("%d ", tab[i]);
- }
- }
- int PARENT(int i)
- {
- return (i-1)/2;
- }
- int RIGHT(int i)
- {
- return 2*i +2;
- }
- int LEFT(int i)
- {
- return 2*i+1;
- }
- void kopiec_PRZYWR(int *tab, int i, int n)
- {
- int l=LEFT(i);
- int r=RIGHT(i);
- int najwiekszy;
- int temp;
- if(l < n && tab[l]>tab[i])
- {
- najwiekszy=l;
- }
- else
- {
- najwiekszy=i;
- }
- if(r < n && tab[r] > tab[najwiekszy])
- {
- najwiekszy=r;
- }
- if(najwiekszy!=i)
- {
- temp = tab[i];
- tab[i]=tab[najwiekszy];
- tab[najwiekszy]=temp;
- kopiec_PRZYWR(tab, najwiekszy, n);
- }
- }
- void kopiec_BUDUJ(int *tab, int roz)
- {
- int n = roz;
- int i;
- for(i = n/2; i>=0; i--)
- {
- kopiec_PRZYWR(tab, i, n);
- }
- }
- void kopiec_WSTAW(int *tab, int wartosc)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement