fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct linked {
  5. int n;
  6. linked* prev;
  7. linked* next;
  8. };
  9.  
  10. void deleteE(linked* elem) {
  11. elem->prev->next = elem->next;
  12. elem->next->prev = elem->prev;
  13. free(elem);
  14. return;
  15. }
  16.  
  17. linked* lstinit(int n) {
  18. linked* elem = (linked*)malloc(sizeof(linked));
  19. elem->n = n;
  20. elem->prev = elem;
  21. elem->next = elem;
  22. return elem;
  23. }
  24.  
  25. linked* push(linked* elem, int n) {
  26. linked* newe = (linked*)malloc(sizeof(linked));
  27. newe->n = n;
  28. newe->prev = elem;
  29. newe->next = elem->next;
  30. newe->next->prev = newe;
  31. newe->prev->next = newe;
  32. return newe;
  33. }
  34.  
  35. void removelst(linked* elem) {
  36. elem->prev->next = NULL;
  37. while(elem->next != NULL) {
  38. elem = elem->next;
  39. free(elem->prev);
  40. }
  41. free(elem);
  42. }
  43.  
  44. int main() {
  45. int k = 10;
  46. linked* first = lstinit(0);
  47. linked* last = first;
  48. for(int i=1;i<k;i++) {
  49. last = push(last, i);
  50. }
  51. // 연결 끊기
  52. deleteE(first->next);
  53. cout << first->next->n << endl;
  54. // 리스트 삭제
  55. removelst(first);
  56. cout << first->next->n;
  57. return 0;
  58. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
2
358636560