Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Node {
- int data {0};
- Node* next {nullptr};
- };
- class MySet {
- public:
- Node* head {nullptr};
- int size {0};
- public:
- MySet() { }
- void add(int value) {
- ++size;
- if (head == nullptr) {
- head = new Node;
- head->data = value;
- return;
- }
- if (head->data == value)
- throw invalid_argument("Already in set");
- Node* current = head;
- while (current->next != nullptr) {
- current = current->next;
- if (current->data == value)
- throw invalid_argument("Already in set");
- }
- current->next = new Node;
- current->next->data = value;
- }
- int getSize() {
- return size;
- }
- bool count(int value) {
- if (head == nullptr)
- return false;
- Node* current = head;
- if (current->data == value)
- return true;
- while(current->next != nullptr) {
- current = current->next;
- if (current->data == value)
- return true;
- }
- return false;
- }
- };
- int main() noexcept {
- MySet set;
- set.add(1);
- set.add(1);
- for (int i = 0; i < 10; ++i)
- set.add(i);
- cout << set.count(9);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement