Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define novi(x) x=(lista *)malloc(sizeof(lista))
  6.  
  7. typedef struct lista{
  8.    
  9.         int podatak;
  10.         struct lista *prethodni,*sledeci;
  11.        
  12. }lista;
  13.  
  14. lista *dodaj(lista *p,int k){
  15.        
  16.         lista *novi;
  17.         novi(novi);
  18.         novi->podatak=k;
  19.        
  20.        
  21.        
  22.         if(p==NULL){
  23.             p=novi;
  24.             p->sledeci=p;
  25.             p->prethodni=p;
  26.             return p;
  27.         }
  28.         else{
  29.             lista *kraj=p;
  30.             lista *mesto=p->sledeci;
  31.             if(novi->podatak<p->podatak){
  32.                 do{
  33.                 kraj=kraj->sledeci;
  34.             } while(kraj->sledeci!=p);
  35.                 novi->sledeci=p;
  36.                 novi->prethodni=kraj;
  37.                 return novi;
  38.                
  39.             }
  40.             else{
  41.                 while (!(mesto->sledeci==p || (novi->podatak>mesto->podatak && novi->podatak<mesto->sledeci->podatak))){
  42.                    
  43.                     mesto=mesto->sledeci;
  44.                 }
  45.                 novi->sledeci=mesto->sledeci;
  46.                 mesto->sledeci=novi;
  47.                 return p;
  48.                 }
  49.            
  50.             }
  51.    
  52.    
  53. }
  54. lista *form(){
  55.    
  56.     lista *p=NULL;
  57.     int n,i,k;
  58.     printf("unesite n:");
  59.     scanf("%d",&n);
  60.    
  61.     for (i=0;i<n;i++){
  62.        
  63.         printf("unesite %d. broj:",i+1);
  64.         scanf("%d",&k);
  65.         p=dodaj(p,k);
  66.         }
  67.        
  68.     return p;
  69. }
  70.  
  71. void ispis(lista *p){
  72.     lista *pom=p;
  73.     do{
  74.         printf("%d ",p->podatak);
  75.         p=p->sledeci;
  76.         }while (p!=pom);
  77.    
  78. }
  79. int main(){
  80.    
  81.         lista *p=NULL;
  82.         p=form();
  83.        
  84.         ispis(p);
  85.    
  86.    
  87.    
  88.    
  89.         return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement