#pragma once
#include <iostream>
using namespace std;
template <typename T>
class List // класс список
{
public:
List(); // конструктор
~List(); // деструктор
void push_back(T data); // вставить в конец списка
int GetSize() { return Size; }
T& operator[](const int index);
void add(Node<T> *head, int pos, int x);
void print(Node *top);
private:
template<typename T>
class Node // класс "Узел"
{
public:
Node *pNext; // указатель на следующий элемент
T data; // данные
int x;
Node(T data = T(), Node *pNext = nullptr) // по умолчанию пусто
{
this->data = data;
this->pNext = pNext;
}
};
Node<T> *head; // голова
int Size; // для хранения количества элементов
};
template<typename T>
List<T>::List()
{
Size = 0;
head = nullptr;
}
template<typename T>
List<T>::~List()
{
}
template<typename T>
inline void List<T>::push_back(T data)
{
if (head == nullptr) // если голова пустая
{
head = new Node<T>(data); // создаём голову
}
else { // если нет
Node<T> * current = this->head; // создаём времменая переменная с указателем на current и присваиваем ей значение заголовка
while (current->pNext != nullptr) // поиск следующего элемента. Если сдедующий элемент не пуст
{
current = current->pNext; // присваевания указателя на следующий елемент
}
current->pNext = new Node<T>(data); // создаём следующий элмент
}
Size++;
}
template<typename T>
inline T & List<T>::operator[](const int index) // перегрузка оператора []
{
int counter = 0; // счётчик
Node<T> *current = this->head;
while (current != nullptr) // если следующий элемент не пустой
{
if (counter == index) // проверка на совпадения
{
return current->data; // возвращаем данные
}
current = current->pNext; // указатель на следующий элемент
counter++; // счётчик + 1
}
}
Гуглиться за 1 минуту. В интеррнете куча информации на этот счет. http://www.intuit.ru/studies/professional_skill_improvements/2056/courses/504/lecture/11456?page=2
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите, как более правильнее и элегантнее решить следующую задачу:
На просторах интернета нашёл такой код, но он почему-то не пашет: