Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Node {
- int n;
- Node *next;
- Node(int e, Node *N): n(e), next(N) {}
- };
- class List {
- protected:
- Node *head;
- public:
- List() {}
- void push_front(int e) {
- Node *n = new Node(e, head);
- head = n;
- }
- void print() const {
- Node *it = head;
- while(it != nullptr){
- cout << it->n << " ";
- it = it->next;
- }
- cout << endl;
- }
- ~List() {
- Node *it = head;
- Node *brisi;
- while(it != nullptr){
- brisi = it;
- it = it->next;
- delete brisi;
- }
- }
- Node *search(int e) {
- Node *it = head;
- while(it != nullptr){
- if(it->n == e)
- return it;
- it = it->next;
- }
- return nullptr;
- }
- bool erease(int e) {
- Node *it = head;
- Node *brisi;
- if(head->n == e){
- brisi = head;
- head = head->next;
- delete brisi;
- return true;
- }
- while(it != nullptr) {
- if (it->next->n == e) {
- brisi = it->next;
- it->next = it->next->next;
- delete brisi;
- return true;
- }
- }
- return false;
- }
- int size() const {
- Node *it = head;
- int cnt=0;
- while(it!= nullptr){
- cnt++;
- it = it->next;
- }
- return cnt;
- }
- };
- int main() {
- List L;
- for(int i=1; i<6; i++)
- L.push_front(i);
- L.erease(5);
- cout << L.size() << endl;
- cout << L.search(3) << endl;
- L.print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement