Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include<stdlib.h>
- int parent(int i);
- int right(int i);
- int left(int i);
- void kopiec_buduj(int *A,int length, int *hp);
- void kopiec_przywroc(int *A,int i, int hp);
- int *kopiec_wstaw(int *A, int key, int *hp);
- main()
- {
- char z;
- while(1)
- {
- printf("\n Co chesz zrobic? ");
- printf("\n d - dodac ");
- printf("\n w - wyswietlic ");
- printf("\n q - wyjsc ");
- z=getchar();
- switch(z)
- {
- case 'q':
- return 0; break;
- }
- }
- }
- void kopiec_buduj(int *A,int length, int *hp)
- {
- int i;
- *hp = length;
- for(i = length/2; i>=1; i--)
- kopiec_przywroc(A, i, *hp);
- }
- void kopiec_przywroc(int *A,int i, int hp)
- {
- int l, r, max,temp;
- l = left(i);
- r = right(i);
- if((l <= hp)&&(A[l] > A[i]))
- max = l;
- else
- max = i;
- if((r <= hp)&&(A[r] > A[max]))
- max = r;
- if(max != i){
- temp = A[i];
- A[i] = A[max];
- A[max] = temp;
- }
- kopiec_przywroc(A,i,max);
- }
- int *kopiec_wstaw(int *A, int key,int *hp)
- {
- int i;
- *hp=*hp+1;
- i=*hp;
- while ((i>1) && (A[parent(i)]<key))
- {
- A[i]=A[parent(i)];
- i=parent(i);
- }
- A[i]=key;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement