Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- class List
- {
- struct Node
- {
- Node * next = nullptr;
- int data = 0;
- };
- Node *root = nullptr;
- unsigned int size = 0;
- public:
- void push_front(int data)
- {
- if (root == nullptr)
- {
- root = new Node();
- root->data = data;
- }
- else
- {
- Node *temp = new Node();
- temp->data = data;
- temp->next = root;
- root = temp;
- }
- ++size;
- }
- void push_back(int data)
- {
- if (root == nullptr)
- {
- root = new Node();
- root->data = data;
- }
- else
- {
- Node *temp = new Node();
- temp->data = data;
- temp->next = nullptr;
- Node *last = root;
- while (last->next != nullptr)
- last = last->next;
- last->next = temp;
- }
- ++size;
- }
- int pop_front() {
- if (root == nullptr)
- return 0;
- else {
- Node *blast = root;
- while ((blast->next != nullptr)||(blast->next->next != nullptr))
- blast = blast->next;
- int data = blast->next->data;
- delete blast->next;
- blast->next = nullptr;
- return data;
- }
- --size;
- }
- int pop_back() {
- if (root == nullptr)
- return 0;
- else {
- int data = root->data;
- Node *next = root->next;
- free(root);
- root = root->next;
- return data;
- }
- --size;
- }
- unsigned int get_size() {
- return size;
- }
- int get_at(unsigned int pos) {
- if (pos < size) {
- int i = 0;
- Node *temp = root;
- while (i < pos) {
- temp = temp->next;
- ++i;
- }
- return temp->data;
- } else
- return 0;
- }
- void clear_list() {
- Node * s = nullptr;
- Node * temp = root;
- for (int i = size; i > 0; --i) {
- s = temp->next;
- free(temp);
- temp = s;
- }
- root = nullptr;
- }
- void remove_at(unsigned int pos) {
- if (pos < size) {
- int i = 0;
- Node *temp = root;
- while (i < pos-1) {
- temp = temp->next;
- ++i;
- }
- Node *s = temp->next;
- temp->next = temp->next->next;
- free(s);
- --size;
- }
- }
- void print()
- {
- Node *temp = root;
- while (temp != nullptr)
- {
- std::cout << temp->data << '\n';
- temp = temp->next;
- }
- }
- };
- int main()
- {
- List a;
- a.push_front(345);
- a.push_front(5);
- a.push_back(88);
- a.remove_at(1);
- a.print();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement