Трябва да напиша шаблон с възли, съдържащ данни с 2 структури от данни: карта и минимална купчина, и двете имат едни и същи възли в него и всеки 2 същите възли са свързани. проблемът е, че имам нужда от купчината, за да знам полетата на възела за heapify например, и не знам кой е правилният начин да го направя, приятели? публични полета в Node? писане на възела вътре в купчината? използване на гетери и сетери? благодаря на всички за помощта.
Как да напиша шаблон?
comment
Хм, пич? Същото като как да внедрите minheap с помощта на шаблон?
- person Konrad Rudolph   schedule 19.09.2010
Отговори (1)
Е, един свързан списък може да бъде оформен така:
namespace my_namespace
{
namespace detail
{
template <class T>
struct Node
{
T value;
Node* previous;
Node* next;
//constructors and other things that might help
};
}
template <class T>
class LinkedList
{
private:
detail::Node<T>* head;
public:
//all it does
};
}
Няма конкретна причина да скриете структурата Node от потребителя или класа LinkedList (поставянето й в пространство от имена на подробности трябва да е повече от достатъчно): LinkedList се нуждае от нея, а самият Node е почти безполезен за потребителя. Постигането на цялото капсулиране зависи от LinkedList: просто не трябва да издава главата си (или който и да е друг Node*
).
person
UncleBens
schedule
19.09.2010
Трябва да поставите клас Node само в пространството на имената на детайлите thou.
- person Viktor Sehr; 19.09.2010