Advertisement
kodopp

list.c

Apr 1st, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.76 KB | None | 0 0
  1. Подключить list:
  2. #inlcude <stdstructs/list.h>
  3.  
  4. Создание списка с первым элементом:
  5.  
  6. some_type *var = allocate(sizeof(some_type));
  7. *var = ЗНАЧЕНИЕ;
  8. list list_name = make_list(var);
  9.  
  10. Добавление элемента в список
  11.  
  12. some_type *var = allocate(sizeof(some_type));
  13. *var = ЗНАЧЕНИЕ;
  14. // Выбрать одно из двух по надобности:
  15. list_insert_next(list_name, var); // Вставить на позицию next текущего элемента
  16. list_insert_prev(list_name, var); // Вставить на позицию prev текущего элемента
  17.  
  18. Навигация по списку:
  19. list_name->next     следующий элемент или null при его отсутствии
  20. list_name->prev     предыдущий элемент или null при его отсутствии
  21. list_nextmost(list_name)    next до конца
  22. list_prevmost(list_name)    prev до конца
  23. list_at(list_name, index)   index-ый элемент, считая от текущего
  24. list_abs_at(list_name, index)   index-ый элемент, считая от prevmost
  25. list_len    длина списка, считая от текущего элемента
  26. list_abs_len    длина списка, считая от prevmost
  27.  
  28. Запись вида
  29. list_name = list_name->next;
  30. Говорит: теперь текущим элементом будет следующий
  31.  
  32. Удаление элемента из списка:
  33. list_pop(list_name)     удаляет текущий элемент из списка
  34.  
  35. Правильнее писать при удалении:
  36. deallocate(list_name->elem, sizeof(some_type));
  37. list_name = list_name->next;
  38. list_pop(list_name->prev);
  39.  
  40. Вроде всё
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement