Мой преподаватель дал классу драйвер для завершения программы, и я не уверен, как закодировать функцию вставки из-за этого.
Линия дает мне неприятности:
you.Insert(me,0);
you
для конструктора по умолчанию, а me
для явного конструктора значений, поэтому предполагается, что эта строка создаст в you
узел с содержимым me
.
Я потерял понимание того, как написать параметр для доступа ко мне для моей функции вставки
void WRD::Insert( ?, int new_data)
Я включу явный конструктор, который у меня есть, любое понимание, которое это мысленно поможет. (включенный пример того, что insert
должна выглядеть или делать на основании примера, который я дал).
WRD::WRD(const string & s)
{
cout<<"one called\n";
front = 0;
for(unsigned i=0; i<s.length(); i++)
{
AddChar(s[i]);
}
}
class node
{
public:
char symbol;
node * next;
};
v
oid Insert(node * &ptr, int new_data)
{
node *new_ptr = new node;
new_ptr -> data = new_data;
new_ptr -> next = 0; //always initialize a pointer
if (Empty(ptr))
{
ptr = new_ptr;
}
else if (new_ptr->data <= ptr->data)
{
new_ptr->next = ptr;
ptr = new_ptr;
}
else
{
node *fwd_ptr=ptr, *pre_ptr=ptr;
while(fwd_ptr!=0 && (fwd_ptr->data < new_ptr->data))
{
pre_ptr = fwd_ptr;
fwd_ptr = fwd_ptr->next;
}
if (fwd_ptr == 0)
{
pre_ptr->next = new_ptr;
}
else
{
new_ptr->next = fwd_ptr;
pre_ptr->next = new_ptr;
}
}
}
Как я думаю (если я понял, что ты прав)
void WRD::Insert(const WRD& w, int new_data)
Это может помочь, чтобы показать больше вашей программы драйвера, в частности, как you
и me
объявлены.