Односвязный список. Простые функции
Похожие темы просмотрел, но все же сомнения есть. Задача: написать реализации для обычных функций списков. Проверьте , пожалуйста, все ли правильно. Ибо это моя самая первая практика со списками. Заранее извиняюсь за глупые ошибки)
#include <iostream>
using namespace std;
struct Single_node {
Single_node* next;
int val;
Single_node();
Single_node(int i, Single_node* n = NULL) {
val = i;
next = n;
};
};
class Single_list {
private:
Single_node* head;
Single_node* tail;
int sz;
public:
Single_list() {
sz = 0;
head = tail = NULL;
};
Single_list(int x) {
Single_node(x,NULL);
};
~Single_list(){
Single_node* current = NULL;
Single_node* next = head;
while (next) {
current = next;
next = next->next;
delete current;
}
};
void push_front(int b) {
Single_node* newItem = new Single_node(b,head);
if (!head) { tail = newItem; }
head = newItem;
sz++;
};
void pop_front() {
Single_node* cur = head;
head = head->next;
sz--;
delete cur;
};
bool empty() {
if (sz == 0) {
return true;
}
};
int size() { return sz; };
void clear();
int& front();
void print()
{
Single_node* p = head;
while (p) {
cout << p->val;
p = p->next;
}
cout << endl;
}
};
int main()
{
Single_list a;
a.push_front(1122211);
a.push_front(1222111);
a.push_front(111221);
a.push_front(22222);
a.pop_front();
a.empty();
a.size();
a.pop_front();
}