Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dvostruko spregnuta lista
- // dmarjanovic
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Node ListNode;
- struct Node {
- // Pokazivac na prethodni i pokazivac na sljedeci
- ListNode *prev;
- ListNode *next;
- int element;
- };
- // Inicijalizacija liste
- void initialize_list(ListNode **head, ListNode **tail) {
- // Pokazivac na "glavu" i na "rep" list postavimo na NULL
- *head = NULL;
- *tail = NULL;
- }
- // Dodavanje novog elementa u listu
- void add_element(ListNode **head, ListNode **tail, int element_data) {
- ListNode *new_node;
- new_node = (ListNode *)malloc(sizeof(ListNode));
- new_node -> element = element_data;
- new_node -> next = NULL;
- // Prvi element liste
- if (*head == NULL && *tail == NULL) {
- new_node -> prev = NULL;
- *head = new_node;
- *tail = new_node;
- return;
- }
- ListNode *current;
- current = *tail;
- new_node -> prev = current;
- current -> next = new_node;
- *tail = new_node;
- }
- // Brisanje elementa liste
- void delete_element(ListNode **head, ListNode **tail, int element_data) {
- ListNode *current;
- current = *head;
- while (current != NULL) {
- if (current -> element == element_data) {
- current -> prev -> next = current -> next;
- current -> next -> prev = current -> prev;
- free(current);
- return;
- }
- current = current -> next;
- }
- }
- // Stampanje elemenata liste
- void print_list(ListNode **head, ListNode **tail) {
- ListNode *current;
- current = *head;
- while (current != NULL) {
- printf("Element je: %d \n", current -> element);
- current = current -> next;
- }
- printf("\n");
- }
- int main() {
- ListNode *head;
- ListNode *tail;
- initialize_list(&head, &tail);
- add_element(&head, &tail, 4);
- add_element(&head, &tail, 23);
- add_element(&head, &tail, 7);
- add_element(&head, &tail, 1);
- add_element(&head, &tail, 2);
- print_list(&head, &tail);
- delete_element(&head, &tail, 1);
- print_list(&head, &tail);
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement