У меня есть полностью работающий LinkedList, который работает с переменными int. Я ищу, чтобы изменить его работу с объектами, но я чувствую застревание, когда дело доходит до указателей. Любой совет?
Это структура узла:
typedef struct Node
{
int data;
Node* next;
}* nodePointer;
И это функция AddNode:
void LinkedList::addNode(int dataToAdd)
{
nodePointer nodeToAdd = new Node;
nodeToAdd->next = NULL;
nodeToAdd->data = dataToAdd;
if(head != NULL)
{
current = head;
while(current->next != NULL)
{
current = current->next;
}
current->next = nodeToAdd;
}//end if
else
{
head = nodeToAdd;
}//end else
}//end addNode
Это вопрос нескольких простых изменений?
Это зависит от типа объектов, которые вы будете использовать.
Для любого класса, где операция по умолчанию =
имеет смысл, вы можете использовать тот же самый код, который у вас есть сейчас, заменив int
на ваш тип объекта.
Для более сложного объекта (например, один из которых содержит указатель на динамически назначенный элемент), вам придется либо определить подходящий оператор =
для этого класса, либо использовать функцию копирования, чтобы гарантировать, что объект правильно скопирован
int data
иint dataToAdd
на любой тип объекта, который вы хотите сохранить, было бы первым шагом (вы также можете начать исследовать шаблоны).someObjectType data
someObjectType dataToAdd
иsomeObjectType dataToAdd