Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node
  5. {
  6. struct node * Llink;
  7. int data;
  8. struct node * Rlink;
  9.  
  10. } DLinklist;
  11.  
  12. void * Getnode()
  13. {
  14. DLinklist * tmp;
  15. tmp = (DLinklist*)malloc(sizeof(DLinklist));
  16. tmp->Llink = NULL;
  17. tmp->Rlink = NULL;
  18. return tmp;
  19. }
  20.  
  21. void Insert(DLinklist**head, int data)
  22. {
  23. if (!*head)
  24. {
  25. *head = Getnode();
  26. (*head)->data = data;
  27. return;
  28. }
  29. Insert(&(*head)->Rlink, data);
  30. (*head)->Rlink->Llink = *head;
  31. }
  32.  
  33. void Output(DLinklist**head)
  34. {
  35. if (*head)
  36. {
  37. printf("%d ", (*head)->data);
  38. Output(&(*head)->Rlink);
  39. }
  40. }
  41.  
  42. void Add(DLinklist**head, int data1, int data2)
  43. {
  44. DLinklist * tmp=NULL;
  45. if ((*head)->data == data1)
  46. {
  47. Insert(&tmp, data2);
  48. tmp->Llink = *head;
  49. tmp->Rlink = (*head)->Rlink;
  50. (*head)->Rlink->Llink = tmp;
  51. (*head)->Rlink = tmp;
  52.  
  53. return;
  54. }
  55. else
  56. Add(&(*head)->Rlink, data1, data2);
  57. }
  58.  
  59. void Delete(DLinklist **head, int data)
  60. {
  61. DLinklist *tmp = NULL;
  62. if ((*head)->data == data)
  63. {
  64. tmp = *head;
  65. if ((*head)->Rlink == NULL) // 마지막 노드
  66. *head = NULL;
  67. else
  68. {
  69. *head = (*head)->Rlink;
  70. (*head)->Llink = (*head)->Llink->Llink;
  71. }
  72. free(tmp);
  73. }
  74. else
  75. Delete(&(*head)->Rlink, data);
  76.  
  77. }
  78.  
  79.  
  80. int main()
  81. {
  82. DLinklist * head = NULL;
  83.  
  84. Insert(&head, 10);
  85. Insert(&head, 20);
  86. Insert(&head, 30);
  87.  
  88. //Add(&head, 10, 15);
  89. Output(&head);
  90. Delete(&head, 20);
  91.  
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement