[#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct student {
char ime[20];
float ocjena;
struct student *veza;
} *glava=NULL;
void dodaj();
void main(){
char izbor;
do{
printf("izaberite\n");
printf("a) dodavanje nove liste\n");
printf("d) izlaz iz programa\n\n\n");
fflush(stdin);
scanf("%c",&izbor);
switch(izbor){
case 'a':{
dodaj();
break;
}
case 'd':{
break;
}
default:{
printf("\n\n\nPogresan izbor! Pokusaj ponovo!\n\n\n");
break;
}
}
}
while(izbor!='d');
}
void dodaj(){
struct student *novi, *pom, *pred;
novi=(struct student*)malloc(sizeof(struct student));
printf("\n\n\nunesite podatke o studentu:\n\n\n");
printf("unesite ime studenta:");
fflush(stdin);
gets(novi->ime);
printf("\n\nunesite ocjenu studentu:");
scanf("%f",&novi->ocjena);
printf("\n\n");
if(glava==NULL){
glava=novi;
novi->veza=NULL;
}
else{
pom=glava;
while(pom!=NULL){
if(strcmp(pom->ime,novi->ime)>0){
if(pom==glava){
novi->veza=glava;
glava=novi;
break;
}
else{
pred->veza=novi;
novi->veza=pom;
break;
}
}
else{
if(pom->veza==NULL){
pom->veza=novi;
novi->veza=NULL;
}
}
pred=pom;
pom=pom->veza;
}
}
}
]