Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Single_list
- {
- private:
- struct Single_node
- {
- Single_node* next;
- int val;
- Single_node(int val, Single_node* next = nullptr)
- {
- this->val = val;
- this->next = next;
- }
- Single_node() {}
- };
- int Size;
- Single_node* head;
- Single_node* tail;
- public:
- Single_list()
- {
- head = nullptr;
- Size = 0;
- }
- Single_list(int val)
- {
- Single_node(val, nullptr);
- Size = 1;
- }
- void push_front(int val)
- {
- head = new Single_node(val,head);
- Size++;
- }
- void pop_front()
- {
- Single_node *temp = head;
- head = head->next;
- delete temp;
- Size--;
- }
- void clear()
- {
- while (Size)
- pop_front();
- }
- ~Single_list()
- {
- clear();
- }
- int size()
- {
- return Size;
- }
- bool empty()
- {
- if (Size == 0)
- return 1;
- else
- return 0;
- }
- void print()
- {
- Single_node* p = head;
- while (p) {
- cout << p->val << ' ';
- p = p->next;
- }
- cout << endl;
- }
- int& front()
- {
- return head->val;
- }
- };
- int main()
- {
- Single_list list;
- for (int i = 0; i < 5; i++)
- {
- list.push_front(i);
- list.print();
- }
- while (!list.empty())
- {
- list.print();
- list.pop_front();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement