Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- struct list {
- char el;
- list *next;
- };
- class List
- {
- public:
- List()
- {
- head = NULL;
- }
- list* add(char ch);
- list* del();
- list* gethead();
- List operator |(const List &right);
- List operator |=(const List &right);
- List operator &(const List &right);
- List operator &=(const List &right);
- private:
- list * head;
- };
- list * List::gethead()
- {
- return head;
- }
- list * List :: add( char ch)
- {
- list *ptr = (struct list*)malloc(1 * sizeof(struct list));
- ptr->el = ch;
- ptr->next = head;
- head = ptr;
- return (head);
- }
- list* List :: del()
- {
- list* tmp = head->next;
- while (tmp != NULL)
- {
- tmp = head->next;
- free(head);
- head = tmp;
- }
- return head;
- }
- List List :: operator |(const List &right)
- {
- List left(*this);
- return (left |= right);
- }
- List List :: operator |=(const List &right)
- {
- list* mem = head,
- vright = right.gethead();
- bool flaq;
- while (right.head != NULL)
- {
- flaq = true;
- while (head != NULL && flaq)
- {
- if (head->el == vright->el)
- flaq = false;
- head = head->next;
- }
- head = mem;
- if (flaq)
- add(vright->el);
- vright = vright->next;
- }
- }
- List List :: operator &(const List &right)
- {
- List left(*this);
- return (left &= right);
- }
- List List ::operator &=(const List &right)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement