Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<math.h>
- typedef struct proces{
- int id;
- int prioritet;
- char ime[50];
- char vreme[50];
- struct proces *prethodni;
- struct proces *sledeci;
- }proces;
- #define novi(x) x=(proces*)malloc(sizeof(proces))
- proces *napravinovi(){
- proces *new;
- novi(new);
- printf("id - prioritet - ime - vreme\n");
- scanf("%d%d",&new->id,&new->prioritet);
- scanf("%s%s",new->ime,new->vreme);
- new->prethodni=new->sledeci=NULL;
- return new;
- }
- void dodaj(proces **poc, proces **kraj, proces *new){
- proces *pom;
- pom=(*poc);
- if(*poc==NULL){
- *poc=new;
- *kraj=new;
- }
- else if( (*poc)->prioritet < new->prioritet || ( (*poc)->prioritet == new->prioritet && (*poc)->id > new->id ) ){
- new->sledeci=*poc;
- (*poc)->prethodni=new;
- *poc=new;
- }
- else if( (*kraj)->prioritet > new->prioritet || ( (*kraj)->prioritet == new->prioritet && (*kraj)->id < new->id ) ){
- new->prethodni=*kraj;
- (*kraj)->sledeci=new;
- *kraj=new;
- }
- else{
- while( pom->prioritet > new->prioritet || (pom->prioritet==new->prioritet && pom->id<new->prioritet) ){
- pom=pom->sledeci;
- }
- new->sledeci=pom;
- new->prethodni=(pom->prethodni);
- (pom->prethodni)->sledeci=new;
- pom->prethodni=new;
- }
- }
- void formiraj(proces **poc, proces **kraj){
- proces *new;
- int n,i;
- printf("n\n");
- scanf("%d",&n);
- for(i=0;i<n;i++){
- new=napravinovi();
- dodaj(poc,kraj,new);
- }
- }
- void stampaj(proces *poc){
- while(poc){
- printf("%d - %d - %s - %s\n",poc->id,poc->prioritet,poc->ime,poc->vreme);
- poc=poc->sledeci;
- }
- }
- int main(){
- proces *p=NULL, *q=NULL;
- formiraj(&p,&q);
- stampaj(p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement