класс MyLinkedList {
публичный:
/** Инициализируйте свою структуру данных здесь. */
целочисленный размер = 0; // сохраняем размер связанного списка
Узел * голова = новый узел (0);
МойСвязанныйСписок() {
}
ПОЛУЧИТЬ ЗНАЧЕНИЕ ПО ИНДЕКСУ
/** Получить значение index-го узла в связанном списке. Если индекс недействителен, вернуть -1. */
интервал получить (целый индекс) {
если(индекс›=размер) вернуть -1;
Node* temp=head-›next;
for(int i=0;i‹index;i++) temp=temp-›следующий;
возврат temp-›val;
}
ДОБАВИТЬ НОВЫЙ УЗЕЛ ПРИ НАЧАЛЕ
/** Добавить узел со значением val перед первым элементом связанного списка. После вставки новый узел будет первым узлом связанного списка. */
недействительным addAtHead (целое значение) {
Node* temp=head-›next;
head-›next=новый узел(val);
head-›next-›next=temp;
размер++;
}
НАКОНЕЦ ДОБАВИТЬ НОВЫЙ УЗЕЛ
/** Добавляем узел со значением val к последнему элементу связанного списка. */
недействительным addAtTail (целое значение) {
Узел* temp=head;
while(temp-›next!=NULL) temp=temp-›next;
temp-›next=новый узел(val);
размер++;
}
ДОБАВИТЬ НОВЫЙ УЗЕЛ В ИНДЕКСЕ
/** Добавить узел со значением val перед узлом index-th в связанном списке. Если индекс равен длине связанного списка, узел будет добавлен в конец связанного списка. Если индекс больше длины, узел не будет вставлен. */
недействительным addAtIndex (индекс int, значение int) {
возврат if(index›size);
Узел* temp=head;
for(int i=0;i‹index;i++) temp=temp-›следующий;
Узел* temp1=temp-›следующий;
temp-›next=новый узел(val);
temp-›next-›next=temp1;
размер++;
}
УДАЛИТЬ УЗЕЛ В ИНДЕКСЕ
/** Удалить индексный узел в связанном списке, если индекс действителен. */
недействительным deleteAtIndex (целый индекс) {
если(индекс›=размер) возврат;
Узел* temp=head;
for(int i=0;i‹index;i++) temp=temp-›следующий;
Узел* temp1=temp-›следующий;
temp-›следующий=temp1-›следующий;
temp1-›следующий=NULL;
размер - ;
удалить темп1;
}
};