Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define novi(x) x=(lista *)malloc(sizeof(lista))
- typedef struct lista{
- int podatak;
- struct lista *prethodni,*sledeci;
- }lista;
- lista *dodaj(lista *p,int k){
- lista *novi;
- novi(novi);
- novi->podatak=k;
- if(p==NULL){
- p=novi;
- p->sledeci=p;
- p->prethodni=p;
- return p;
- }
- else{
- lista *kraj=p;
- lista *mesto=p->sledeci;
- if(novi->podatak<p->podatak){
- do{
- kraj=kraj->sledeci;
- } while(kraj->sledeci!=p);
- novi->sledeci=p;
- novi->prethodni=kraj;
- return novi;
- }
- else{
- while (!(mesto->sledeci==p || (novi->podatak>mesto->podatak && novi->podatak<mesto->sledeci->podatak))){
- mesto=mesto->sledeci;
- }
- novi->sledeci=mesto->sledeci;
- mesto->sledeci=novi;
- return p;
- }
- }
- }
- lista *form(){
- lista *p=NULL;
- int n,i,k;
- printf("unesite n:");
- scanf("%d",&n);
- for (i=0;i<n;i++){
- printf("unesite %d. broj:",i+1);
- scanf("%d",&k);
- p=dodaj(p,k);
- }
- return p;
- }
- void ispis(lista *p){
- lista *pom=p;
- do{
- printf("%d ",p->podatak);
- p=p->sledeci;
- }while (p!=pom);
- }
- int main(){
- lista *p=NULL;
- p=form();
- ispis(p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement