Изменить LinkedList для принятия объектов вместо Int?

0

У меня есть полностью работающий 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

Это вопрос нескольких простых изменений?

  • 1
    С чем именно у вас проблемы? Измените int data и int dataToAdd на любой тип объекта, который вы хотите сохранить, было бы первым шагом (вы также можете начать исследовать шаблоны).
  • 2
    Я согласен. Новые объявления будут выглядеть как someObjectType data someObjectType dataToAdd и someObjectType dataToAdd
Теги:
pointers
oop

1 ответ

1
Лучший ответ

Это зависит от типа объектов, которые вы будете использовать.

Для любого класса, где операция по умолчанию = имеет смысл, вы можете использовать тот же самый код, который у вас есть сейчас, заменив int на ваш тип объекта.

Для более сложного объекта (например, один из которых содержит указатель на динамически назначенный элемент), вам придется либо определить подходящий оператор = для этого класса, либо использовать функцию копирования, чтобы гарантировать, что объект правильно скопирован

Ещё вопросы

Сообщество Overcoder
Наверх
Меню