You are on page 1of 3

/*

Stvorite jednostavnu vezanu listu s podacima o studentima


MBR; Prezime i Ime; Godina studiranja;
Izbornik:
-dodavanje novih elemenata u listu
-ispis sadraja liste
-pretraivanje liste
-brisanje elemenata liste
-dealokacija liste i izlaz iz programa
*/
#include "stdafx.h"
#include <iostream>
using namespace std;

//header file projekta


//header file u kojem je sadrana biblioteka std
//koritenje imenskog prostora std;

struct student{
//strukturiranje liste (CIJELA STRUKTURA JE SADA TIP)
int mbr;
//deklaracija varijable elementa liste
char naziv[40];
int god;
student *slijedeci;
//deklaracija pointera kao elementa liste koji omoguava
povezivanje
//u listu vie uneenih el. tipova strukture student dakle 1.student(p.->NEXT)2.(p->NULL)zadnji
};
//CIJELA STRUKTURA JE SADA TIP!!!
void dodaj(student *lista){
//fun. dobiva pokaziva lista-glava strukture tipa student
student *novi, *zadnji; //deklaracija pokazivaa tipa student
zadnji=lista;//pok. zadnji' pridruuje se - adresa' lista(glava mem.aloc. strukture tipa
stud.)!
//sada oba pokazuju na istu dinamiku adresu glave "tipa strukture student"
while(zadnji->slijedeci)//while adr. zadnji' pokazuje na adr. p.slijedeci dok ne dodje na
slijedeci=NULL
zadnji=zadnji->slijedeci;//postavljenje glave na adr. slijedeci' koja ima NULL; ***i tu
kreni dalje
novi=new student;//alokacija - na dohvaenoj poziciji stvara novi element tipa strukture
student

zadnji->slijedeci=novi; //povezivanje zadnjeg el.(slijedeci'-0p.) u listi strukture sa novi'


elementom
novi->slijedeci=NULL;
//novom elementu pokaziva slijedeci inicijaliziran na NULL(postaje
zadnji element u listi tipa student strukture)
//SADA U NOVI ELEMENT KOJI JE POZICIONIRAN KAO ZADNJI EL. LISTE TIPA STRUK. STUDENT UNOSIMO
VRIJEDNOSTI
cout<<"MBR: ";
cin>>novi->mbr;
cout<<"Naziv: ";
cin.ignore();
cin.getline(novi->naziv, 40);
cout<<"Godina: ";
cin>>novi->god;
}
void ispis(student *lista){
//fun. dobiva pokaziva lista-glava strukture tipa student
student *tekuci;
tekuci = lista->slijedeci;
//tekuci je nova glava i usmjerava se na prvi slijedeci element
za ispis
while(tekuci){
//dok god tekuci ne naleti na vrijednost NULL
cout<<"MBR: "<<
tekuci->mbr<<endl;
cout<<"Naziv: "<<
tekuci->naziv<<endl;
cout<<"Godina: "<< tekuci->god<<endl;
cout<<"_________________"<<endl;
tekuci=tekuci->slijedeci;//kretanje kroz listu(prolaz kroz adrese elemenata pohranjene u
slijedeci')
}
}
void main(){
int izbor;
//deklaracija varijable
//ALOCIRANJE PRAZNOG MEMORIJSKOG PROSTORA TIPA STUDENT I INICIJALIZACIJA VRIJEDNOSTI POINTERA
SLIJEDECI NA NULL KAKO BI NOVI ELEMENT BIO ZADNJI
student *lista = new student;//aloc. mem. pok. glave struk. naziva "lista" tipa struk. student!
lista->slijedeci=NULL;//tip pod. point. "slijedeci" aloc. mem. tipa "stud." inic. na vrij. NULL
//pointer glave aloc. mem. struk. stud. dohvaa ptr.slijedeci i inicijalizira se na NULL
do{//do petlja ispisuje i prolazi kroz caseove dok god izbor nije 9 onda izlazi
cout<<"1. Dodavanje u listu"<<endl;

cout<<"2. Ispis liste"<<endl;


//cout<<"3. Pretraga liste po MBR"<<endl;
//cout<<"4. Brisanje clanova liste po MBR"<<endl;
//cout<<"9. Dealokacija liste i izlaz"<<endl;
cin>>izbor;
switch(izbor){
//switchanje prema zaprimljenoj varijabli izbor
case 1:dodaj(lista);break;
case 2:ispis(lista);break;
//
case 9:lista=dealoc(lista);break;
}
}while(izbor!=9);
cout<<(int)lista<<endl;
}

You might also like