Loading...
Jovanna avatar Jovanna 186 Точки

C++ Advanced, Task07_05 - Linked List - срокът за предаване изтече, Pls споделете yourVer...

Здравейте,

много интересна задача, явно е от азбуката на програмиста. И, понеже срокът за предаване мина, който би искал да сподели работещо решение, моля да постне, много ще е полезно.

Ръннах я , изчистих компилационните, но кодът ми не работи. Ще се радвам на съвети по него, за което предварително благодаря!   https://pastebin.com/WpX7zStg

Поздрави!

 

Тагове:
0
C++ Programming
Jovanna avatar Jovanna 186 Точки

Благодаря за споделените решения!! 

//не е от ctor-a, тенкс, оправих го, ще продължавам да дебъгвам...

Интересно това със смяната на пойнтерите , тия list-oве май ще излязат златни откъм приложение.

то вярно че си зависи от случая, но чудя се кой от двата се ползва масово повече, vector или list? 

Поздрави!

0
MartinBG avatar MartinBG 4621 Точки

Обръщането на масив също не е сложно за реализация - просто се разменят стойностите на елементи с индекси 0 и lenth-1, 1  и lengh-2 и т.н., докато не стигнем средата. :)

 

Векторът най-вероятно е по-използваната струкура, но има ситуации, при които листът е по-удачен избор.

 

При листа имаме константна сложност на добавяне и махане на елементи в двата края (при двойно свързан списък), както и лесно вмъкване или премахване на елементи преди/след всеки нод (стига да сме го достъпили), но нямаме достъп по индекс (за да стигнем до n-тия елемент, трябва да минем през всички преди него). Листът използва повече памет заради нодовете, създаването, триенето и менажирането на които също забавя една идея повече добавянето и премахването на елементи.

 

Все пак, в ситуации, при които ще се налага често добавяне и махане на елементи (особено ако е в двата края), трябва ни подредба (запазване на последователността при обхождане) и не ни трябва достъп по индекс (вектор, масив) или по стойност/ключ (сет, мап), списъкът може да се окаже най-подходящата структура.

Добър пример за приложението му може да видиш в упражнението към последната лекция, където се използва списък за съхранение на указатели към всички Particle обекти:

 

std::list<Particle*> particles;

 

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

 

Ако няма да се налага често премахване и вмъкване на елементи, или пък ни трябва достъп по индекс, векторът е по-удачен избор.

 

1
24/10/2018 14:27:33
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.