Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- struct wezel
- {
- struct wezel * rodzic, * lewy, * prawy;
- int k;
- };
- struct wezel *BST_WSTAW(struct wezel * root,struct wezel * nowy);
- void in_order(struct wezel *root);
- main()
- {
- int ile=0;
- char co='d';
- struct wezel *root=NULL,*nowy=NULL;
- while(co!='x')
- {
- printf("co chcesz zrobic?\nd-dodaj\nw-wyswietl in order\n");
- fflush(stdin);
- scanf("%c",&co);
- switch(co)
- {
- case 'd':
- nowy=(struct wezel*)malloc(sizeof(struct wezel));
- nowy->lewy=NULL;
- nowy->prawy=NULL;
- fflush(stdin);
- scanf("%d",&ile);
- nowy->k=ile;
- root=BST_WSTAW(root,nowy);
- break;
- case 'w':
- if(root==NULL)
- printf("drzewo puste\n");
- else
- in_order(root);
- break;
- default:
- break;
- }
- }
- }
- struct wezel *BST_WSTAW(struct wezel * root,struct wezel * nowy)
- {
- struct wezel*y=NULL,*x=NULL;
- x=root;
- while(x!=NULL)
- {
- y=x;
- if(nowy->k < x->k)
- x=x->lewy;
- else
- x=x->prawy;
- }
- nowy->rodzic=y;
- if(y==NULL)
- root=nowy;
- else if(nowy->k < y->k)
- y->lewy=nowy;
- else
- y->prawy=nowy;
- return root;
- }
- void in_order(struct wezel *root)
- {
- if(root)
- {
- in_order(root->lewy);
- printf("%d\n",root->k);
- in_order(root->prawy);
- }
- }
- void maksimum(struct wezel *root)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement