Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- class unit
- {
- public:
- unit(int data); //constructor
- virtual ~unit(); //destructor
- void push(int data);
- int getData();
- unit* getNext();
- unit* findElement(int data);
- void addToTheEnd(int data);
- void deleteLast();
- private:
- unit* next;
- int data;
- };
- unit::unit(int data)
- {
- this->data = data;
- next = NULL;
- }
- unit::~unit()
- {
- delete next;
- }
- void unit::push(int data)
- {
- unit* element = new unit(this->data);
- element->next = this->next;
- this->next = element;
- this->data = data;
- }
- int unit::getData()
- {
- return data;
- }
- unit* unit::getNext()
- {
- return this->next;
- }
- unit* unit::findElement(int data)
- {
- unit* selected = this;
- while (selected->getData() != data)
- {
- selected = selected->getNext();
- }
- return selected;
- }
- void unit::addToTheEnd(int data)
- {
- unit* newData = new unit(data);
- unit* selected = this;
- while (selected->next != NULL)
- {
- selected = selected->next;
- }
- selected->next = newData;
- }
- void unit::deleteLast()
- {
- unit* selected = this;
- while (selected->next != 0)
- {
- selected = selected->next;
- }
- selected = NULL;
- }
- class list
- {
- public:
- list();
- ~list();
- int getLenght();
- void print();
- void add(int data);
- void addToFront(int data);
- void insertIn(int data, int number);
- void deleteLast();
- unit* findUnit(int data);
- unit* getByNumber(int number);
- private:
- int lenght;
- unit* root;
- };
- list::list()
- {
- lenght = 0;
- root = NULL;
- }
- list::~list()
- {
- delete root;
- }
- int list::getLenght()
- {
- return lenght;
- }
- void list::print()
- {
- unit* selected = root;
- if (lenght != 0)
- {
- while (selected->getNext() != NULL)
- {
- cout << selected->getData() << endl;
- selected = selected->getNext();
- }
- cout << selected->getData() << endl;
- }
- }
- void list::add(int data)
- {
- if (lenght != 0)
- {
- root->addToTheEnd(data);
- }
- else
- {
- root = new unit(data);
- }
- lenght++;
- }
- void list::addToFront(int data)
- {
- if (lenght != 0)
- {
- root->push(data);
- }
- else
- {
- root = new unit(data);
- }
- lenght++;
- }
- void list::insertIn(int data, int number)
- {
- if (lenght < number || number < 0)
- {
- cout << "this unit doesn't exist";
- }
- else
- {
- unit* selected = root;
- int temp = 0;
- while (temp < number)
- {
- selected = selected->getNext();
- temp++;
- }
- selected->push(data);
- lenght++;
- }
- }
- void list::deleteLast()
- {
- if (lenght == 0)
- {
- cout << "list is empty";
- }
- else
- {
- root->deleteLast();
- lenght--;
- }
- }
- unit* list::findUnit(int data)
- {
- if (lenght != 0)
- {
- return root->findElement(data);
- }
- else
- {
- return NULL;
- }
- }
- unit* list::getByNumber(int number)
- {
- if ((number<0) || (number>=lenght))
- {
- return NULL;
- }
- else
- {
- unit* selected = root;
- int temp = 0;
- while (temp < number)
- {
- selected = selected->getNext();
- temp++;
- }
- return selected;
- }
- }
- int main()
- {
- list* mylist = new list();
- for (int i = 0; i < 10; i++)
- {
- mylist->add(i);
- }
- mylist->addToFront(-1);
- mylist->print();
- cout << endl;
- cout << mylist->getByNumber(4)->getData() << endl << endl;
- mylist->insertIn(12, 4);
- mylist->print();
- cout<< mylist->getLenght()<<endl;
- mylist->deleteLast();
- cout<< mylist->getLenght()<<endl;
- delete mylist;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement