Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define BRINDEKS_SIZE 11
- #define IME_SIZE 21
- #define PREZIME_SIZE 21
- typedef struct student{
- char ime[IME_SIZE];
- char prezime[PREZIME_SIZE];
- char brindeks[BRINDEKS_SIZE];
- int godupis;
- struct student *next;
- }TStudent;
- element* unos_elem(TStudent** glava, char* ime, char* prezime, char* brindeks, int godupis, int pozicija){
- if (*glava == NULL){
- *glava = novi;
- return;
- }
- if((pozicija <0) || (pozicija => broj_elem(*glava))){
- return;
- }
- TStudent* novi = (TStudent*)malloc(sizeof(TStudent));
- novi->ime = ime;
- novi->prezime = prezime;
- novi->brindeks = brindeks;
- novi->godupis = godupis;
- int i;
- TStudent* tekuci = *glava;
- TStudent* prethodni = *glava;
- for (i = 0; i < pozicija; i++){
- prethodni= tekuci;
- tekuci = tekuci->next;
- }
- novi->next = tekuci;
- if(tekuci == *glava){
- *glava = novi;
- }else{
- prethodni->next = novi;
- }
- void prikaz_elem(TStudent* glava){
- puts("PRIKAZ STUDENATA");
- puts("--------------------------------------");
- if (glava == NULL){
- printf("Lista je prazna! \n");
- return;
- }
- element* tekuci = glava;
- while(tekuci != NULL){
- printf("Student: %s, %s, %s, %d\n",tekuci->ime, tekuci->prezime, tekuci->brindeks, tekuci->godupis);
- tekuci = tekuci->next;
- }
- puts("-------------------------------------");
- }
- int broj_elem(TStudent* glava){
- int brojStud = 0;
- while(glava){
- brojStud++;
- glava = glava->next;
- }
- return brojStud;
- }
- void bris(TStudent** glava, char* indeks){
- if (*glava == NULL){
- return;
- }
- if ((*glava)->brindeks == idenks){
- *glava = (*glava)->next;
- return;
- }
- TStudent* prethodni = *glava;
- TStudent* tekuci = *glava;
- while(tekuci != NULL){
- if (tekuci->brindeks == indeks){
- prethodni->next = tekuci->next;
- free(tekuci);
- return;
- }
- prethodni = tekuci;
- tekuci = tekuci->next;
- }
- printf("\n");
- }
- void destrukcijaListeUParKoraka(TStudent* glava){
- TStudent* tek = glava;
- while (glava!=NULL){
- tek = glava;
- glava = tek->next;
- free(tek);
- }
- }
- int main()
- {
- TStudent* glava = NULL;
- prikaz_elem(glava);
- unos_elem(&glava, 'o');
- unos_elem(&glava, 'r');
- unos_elem(&glava, 'g');
- prikaz_elem(glava);
- unos_elem(&glava, 'p');
- unos_elem(&glava, 'd');
- prikaz_elem(glava);
- bris(&glava, 'o');
- bris(&glava, 'p');
- prikaz_elem(glava);
- bris(&glava, 'd');
- prikaz_elem(glava);
- destrukcijaListeUParKoraka(glava);
- prikaz_elem(glava);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment