Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- using namespace std;
- class Element
- {
- int key;
- Element* next;
- friend class List;
- public:
- int getKey();
- int ListElement(int key);
- };
- class List
- {
- Element* head;
- int size;
- public:
- void addToBeginning(int key);
- void addToEnd(int key);
- bool contains(int key);
- Element*getElement(int key);
- Element*getByIndex(int idx);
- void removeKey(int key);
- void clearAll();
- void printList();
- List();
- };
- void List::addToBeginning(int key)
- {
- Element* newElem = new Element();
- newElem->key = key;
- newElem->next = head;
- head = newElem;
- size++;
- }
- void List::addToEnd(int key)
- {
- Element* newElem = new Element();
- newElem->key = key;
- if (head != NULL)
- {
- Element* helper = head;
- while (helper->next != NULL)
- {
- helper = helper->next;
- }
- helper->next = newElem;
- }
- else
- {
- head = newElem;
- }
- }
- Element* List::getElement(int key)
- {
- if (head == NULL)
- {
- return NULL;
- }
- Element* helper = head;
- while (helper->key != key)
- {
- if (helper->next == NULL) //key is not present
- {
- return NULL;
- }
- helper = helper->next;
- }
- return helper; //moze wskaznik?
- }
- bool List::contains(int key)
- {
- if(List::getElement(key)==NULL){
- return false;
- }
- else
- {
- return true;
- }
- // if (head == NULL)
- // {
- // return false;
- // }
- // Element* helper = head;
- // while (helper->key != key)
- // {
- // if (helper->next == NULL) //key is not present
- // {
- // return false;
- // }
- // helper = helper->next;
- // }
- // return true; //moze wskaznik?
- }
- Element* List::getByIndex(int idx)
- {
- if (head == NULL)
- {
- return NULL;
- }
- Element* helper = head;
- for(int i=0; i<idx; i++)
- {
- if (helper->next!= NULL)
- {
- helper = helper->next;
- }
- else
- {
- return NULL;
- }
- }
- return helper;
- }
- void List::remove(int key)
- {
- if (head==NULL)
- {
- cout << "Element o podanym kluczu nieznaleziony." << endl;
- return;
- }
- Element* helper = head;
- Element* previous = NULL;
- while (helper->key != key){
- if (helper->next != NULL)
- {
- cout << "Element o podanym kluczu nieznaleziony." << endl;
- return;
- }
- previous = helper;
- helper = helper->next;
- }
- prevous->next = helper->next;
- delete helper;
- }
- void List::clearAll()
- {
- Element *helper = head;
- Element *next = helper->next;
- head = NULL;
- while (next != NULL)
- {
- helper = next;
- next = helper->next;
- delete helper;
- }
- size = 0;
- }
- void List :: printList()
- {
- if (head == NULL)
- {
- cout << "lista jest pusta";
- }
- cout << "List=[";
- Element *helper = head;
- while (helper != NULL)
- {
- cout << helper;
- cout << ", ";
- helper = helper->next;
- }
- cout << "] size=" << size;
- }
- int Element::getKey()
- {
- return this->key;
- }
- List::List()
- {
- this->head = NULL;
- this->size = 0;
- }
- int main()
- {
- List* list = new List();
- //list->addToEnd(3);
- list->addToBeginning(2);
- list->printList();
- list->addToBeginning(1);
- //list->addToEnd(4);
- list->printList();
- if (list->contains(3))
- {
- cout << "contains 3" << endl;
- }
- else
- {
- cout << "not contains 3" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement