C за начинаещи

Списък(); // Прототип на деструктор: освобождаване на памет в деструктора

1. Изтичане на памет void List::Show(int temp)

Възел *tempHead= Глава;//Не докосвайте самата глава //вместо ///Възел *tempHead=нов възел; //// tempHead=Head; // Не докосвайте самата глава

2. Не разбрах значението на функцията Show(int), предаден параметър се презаписва от количеството в списъка. По-добре е да не го правите. Няма да обяснявам, но недостатъците са стил, объркване за друг програмист, бързина.

temp=размер; //Временна променлива, равна на броя на елементите в списъка По-добре да направите това void List::Show(void) int temp=size;

1 точка коригирана. Ще обясня точка 2. няма значение, че променливата е презаписана. Тъй като в момента на извикване на функцията, вътре във функцията се предава параметър и самата функция приема този параметър като обикновена променлива (а не като указател или препратка), във функцията се създава локално копие на променливата, което е аналогично на това, което сте написали в параграф 2. Във всеки случай променливата извън функцията, която даваме вътре във функцията, няма да се промени от работата на функцията.

Но как да добавите фиктивен елемент към кръгов единично свързан списък, който действа като бариера между началото и края на списъка?

Сега не мога да отговоря на този въпрос. 🙁

Можете да опитате изтриване по този начин

Item* List::deleteAfter(Item* sought_item) Item* tmp = sought_item->Next; търсен_елемент->Напред = tmp->Напред; if(tmp == Head) Head = sought_item->Next; if(tmp == Tail) Tail = sought_item->Next; изтриване на tmp; размер—; върни търсен_елемент->Напред; >

Благодаря ти. Ще погледна по-късно.

Здравейте, исках да попитам как да изтрия и търся желания елемент, имам проблеми с това.

И сега не мога да ти отговоря.

Аз самият не знам много за тях.