З для початківців
List (); //Прототип деструктор: у деструкторі звільнимо пам'ять
1. Витік пам'яті void List::Show(int temp)
Node *tempHead= Head;//Саму голову чіпати не треба //замість ///Node *tempHead=new Node; //// tempHead=Head; // Саму голову чіпати не треба
2. Не зрозумів сенсу функції Show(int), переданий параметр затирається кількістю у списку. Так краще не робити. Пояснювати не буду, але мінуси – стиль, плутанина для іншого програміста, швидкодія.
temp = size; //Тимчасова змінна дорівнює кількості елементів у списку Краще зробити так void List::Show(void) int temp=size;
1 пункт виправив. 2 пункт я поясню. тут немає значення те, що змінна затирається. Так як в момент виклику функції всередину функції передається параметр, а сама функція приймає цей параметр як звичайну змінну (не як покажчик або посилання), то всередині функції створюється локальна копія змінної, що є аналогом того, що ви написали в пункті 2. У будь-якому випадку змінна поза функцією, яку ми віддаємо всередину функції роботою функції не зміниться.
а як додати в кільцевий однозв'язок фіктивний елемент, що виконує роль бар'єру, між початком і кінцем списку?
я зараз не можу відповісти на це запитання. 🙁
Можна видалення пробувати так
Item* List::deleteAfter(Item* sought_item) Item* tmp = sought_item->Next; sought_item->Next = tmp->Next; if(tmp == Head) Head = sought_item->Next; if(tmp == Tail) Tail = sought_item->Next; delete tmp; size-; return sought_item->Next; >
Дякую. я згодом подивлюся.
Здрастуйте, хотіла запитати, а видалення та пошук потрібного елемента як робитися, у мене з цим проблеми.
і вам зараз відповісти не зможу.
я сам не особливо в них знаюся.