Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct node * PNODE;
- typedef struct node {
- int data;
- PNODE next;
- }NODE;
- void prikaziListu(PNODE glava);
- void dodajNaPocetak(PNODE * glava, PNODE * rep, int elem);
- void dodajNaKraj(PNODE * glava, PNODE * rep, int elem);
- void izbaciSaPocetka(PNODE * glava, PNODE * rep);
- void izbaciSaKraja(PNODE *glava, PNODE *rep);
- void izbaciZadatiElement(PNODE * glava, PNODE * rep, int elem);
- int main(void) {
- PNODE glava = NULL;
- PNODE rep = NULL;
- izbaciZadatiElement(&glava, &rep, 123);
- prikaziListu(glava);
- dodajNaPocetak(&glava, &rep, 12);
- dodajNaPocetak(&glava, &rep, 11);
- dodajNaPocetak(&glava, &rep, 10);
- dodajNaPocetak(&glava, &rep, 15);
- dodajNaPocetak(&glava, &rep, 14);
- dodajNaPocetak(&glava, &rep, 13);
- prikaziListu(glava);
- izbaciZadatiElement(&glava, &rep, 11);
- prikaziListu(glava);
- }
- void dodajNaPocetak(PNODE * glava, PNODE * rep, int elem)
- {
- PNODE novi = malloc(sizeof(NODE));
- novi->data = elem;
- novi->next = *glava;
- if (*glava == NULL) {
- *rep = novi;
- }
- *glava = novi;
- }
- void prikaziListu(PNODE glava)
- {
- PNODE curr = glava;
- printf("Lista:\n");
- if (curr == NULL) {
- printf("PRazna je!\n");
- return;
- }
- while (curr != NULL) {
- printf("%d\t", curr->data);
- curr = curr->next;
- }
- printf("\n\n");
- }
- void dodajNaKraj(PNODE * glava, PNODE * prep, int elem)
- {
- PNODE novi = malloc(sizeof(NODE));
- novi->data = elem;
- novi->next = NULL;
- if (*glava == NULL) {
- *glava = novi;
- *prep = novi;
- }
- else {
- (*prep)->next = novi;
- *prep = novi;
- }
- }
- void izbaciSaPocetka(PNODE * glava, PNODE * rep)
- {
- PNODE del = *glava;
- if (*glava == NULL) {
- printf("Lista je prazna svakako\n");
- return;
- }
- if (*glava == *rep) {
- *glava = NULL;
- *rep = NULL;
- free(del);
- return;
- }
- *glava = del->next;
- free(del);
- }
- void izbaciSaKraja(PNODE * glava, PNODE * rep)
- {
- PNODE last = *rep;
- PNODE pret = *glava;
- if (*glava == NULL) {
- printf("Lista je prazna u startu!");
- return;
- }
- if (*glava == *rep) {
- *glava = NULL;
- *rep = NULL;
- free(last);
- return;
- }
- while (pret->next != last) {
- pret = pret->next;
- }
- *rep = pret;
- pret->next = NULL;
- free(last);
- }
- void izbaciZadatiElement(PNODE * glava, PNODE * rep, int elem)
- {
- PNODE prev = NULL;
- PNODE curr = *glava;
- if (*glava == NULL) {
- printf("Lista je praznapa ne mogu izbaciti broj %d\n", elem);
- return;
- }
- if (*glava == *rep) {
- if ((*glava)->data == elem) {
- *rep = NULL;
- *glava = NULL;
- free(prev);
- }
- return;
- }
- while (curr->next != NULL && curr->data != elem) {
- prev = curr;
- curr = curr->next;
- }
- if (curr->data != elem) {
- printf("Broj ne postoji u listi!\n");
- return;
- }
- if (prev == NULL) {
- izbaciSaPocetka(glava, rep);
- }
- else if (curr == *rep) {
- izbaciSaKraja(glava, rep);
- }
- else {
- prev->next = curr->next;
- free(curr);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement