Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.66 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<math.h>
  5.  
  6. typedef struct proces{
  7.     int id;
  8.     int prioritet;
  9.     char ime[50];
  10.     char vreme[50];
  11.     struct proces *prethodni;
  12.     struct proces *sledeci;
  13. }proces;
  14.  
  15. #define novi(x) x=(proces*)malloc(sizeof(proces))
  16.  
  17. proces *napravinovi(){
  18.     proces *new;
  19.     novi(new);
  20.     printf("id - prioritet - ime - vreme\n");
  21.     scanf("%d%d",&new->id,&new->prioritet);
  22.     scanf("%s%s",new->ime,new->vreme);
  23.     new->prethodni=new->sledeci=NULL;
  24.    
  25.     return new;
  26. }
  27.  
  28. void dodaj(proces **poc, proces **kraj, proces *new){
  29.     proces *pom;
  30.     pom=(*poc);
  31.     if(*poc==NULL){
  32.         *poc=new;
  33.         *kraj=new;
  34.     }
  35.     else if( (*poc)->prioritet < new->prioritet || ( (*poc)->prioritet == new->prioritet && (*poc)->id > new->id ) ){
  36.         new->sledeci=*poc;
  37.         (*poc)->prethodni=new;
  38.         *poc=new;
  39.     }
  40.     else if( (*kraj)->prioritet > new->prioritet || ( (*kraj)->prioritet == new->prioritet && (*kraj)->id < new->id ) ){
  41.         new->prethodni=*kraj;
  42.         (*kraj)->sledeci=new;
  43.         *kraj=new;
  44.     }
  45.     else{
  46.         while( pom->prioritet > new->prioritet || (pom->prioritet==new->prioritet && pom->id<new->prioritet) ){
  47.             pom=pom->sledeci;
  48.         }
  49.         new->sledeci=pom;
  50.         new->prethodni=(pom->prethodni);
  51.         (pom->prethodni)->sledeci=new;
  52.         pom->prethodni=new;
  53.     }
  54. }
  55.  
  56. void formiraj(proces **poc, proces **kraj){
  57.     proces *new;
  58.     int n,i;
  59.     printf("n\n");
  60.     scanf("%d",&n);
  61.     for(i=0;i<n;i++){
  62.         new=napravinovi();
  63.         dodaj(poc,kraj,new);
  64.     }
  65. }
  66.  
  67. void stampaj(proces *poc){
  68.     while(poc){
  69.         printf("%d - %d - %s - %s\n",poc->id,poc->prioritet,poc->ime,poc->vreme);
  70.         poc=poc->sledeci;
  71.     }
  72. }
  73.  
  74. int main(){
  75.     proces *p=NULL, *q=NULL;
  76.     formiraj(&p,&q);
  77.     stampaj(p);
  78.    
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement