Advertisement
Guest User

valens_2

a guest
Nov 13th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. #pragma once
  2. struct list {
  3. char el;
  4. list *next;
  5. };
  6. class List
  7. {
  8. public:
  9. List()
  10. {
  11. head = NULL;
  12. }
  13. list* add(char ch);
  14. list* del();
  15. list* gethead();
  16. List operator |(const List &right);
  17. List operator |=(const List &right);
  18. List operator &(const List &right);
  19. List operator &=(const List &right);
  20.  
  21. private:
  22. list * head;
  23.  
  24. };
  25.  
  26. list * List::gethead()
  27. {
  28. return head;
  29. }
  30.  
  31. list * List :: add( char ch)
  32. {
  33. list *ptr = (struct list*)malloc(1 * sizeof(struct list));
  34. ptr->el = ch;
  35. ptr->next = head;
  36. head = ptr;
  37. return (head);
  38. }
  39.  
  40. list* List :: del()
  41. {
  42. list* tmp = head->next;
  43. while (tmp != NULL)
  44. {
  45. tmp = head->next;
  46. free(head);
  47. head = tmp;
  48. }
  49. return head;
  50. }
  51.  
  52. List List :: operator |(const List &right)
  53. {
  54. List left(*this);
  55. return (left |= right);
  56. }
  57. List List :: operator |=(const List &right)
  58. {
  59. list* mem = head,
  60. vright = right.gethead();
  61. bool flaq;
  62. while (right.head != NULL)
  63. {
  64. flaq = true;
  65. while (head != NULL && flaq)
  66. {
  67. if (head->el == vright->el)
  68. flaq = false;
  69. head = head->next;
  70. }
  71. head = mem;
  72. if (flaq)
  73. add(vright->el);
  74. vright = vright->next;
  75. }
  76. }
  77. List List :: operator &(const List &right)
  78. {
  79. List left(*this);
  80. return (left &= right);
  81. }
  82. List List ::operator &=(const List &right)
  83. {
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement