Предположим, что у вас есть два полиномиальных выражения, я пытаюсь закодировать программу, которая выполняет 3 разных операции: 1.match (равенство) 2.sum (добавление) и 3.dot (умножение).оценка выражения в C++ с использованием LinkedList
class Node
{
public:
int coef;
int expo;
Node *next;
Node(int coef=0, int expo=0, Node *next=NULL)
{
this->coef = coef;
this->expo = expo;
this->next = next;
}
};
//
class LinkedList
{
public:
Node *head;
int size;
LinkedList()
{
head = new Node(0, 0, NULL);
head->coef = 0;
head->expo = 0;
head->next = NULL;
size = 0;
}
int degree();
int coefficient(int);
bool match(LinkedList *, LinkedList*);
void insert();
LinkedList sum(LinkedList *, LinkedList *);
LinkedList dot(LinkedList *, LinkedList *);
};LinkedList x, y, z;
Я также определенная функция memeber, как показано ниже:
bool LinkedList::match(LinkedList *expr1, LinkedList *expr2)
{
// Check if both expressions have a same length
if (expr1->size != expr2->size)
{
cout << "The expressions do not match in length." << endl;
return false;
}
else if (expr1->size == expr2->size)
{
// Both expressions are the same in length, but not equal
while (expr1->head->coef && expr2->head->coef)
}
}
Проблема, я не могу получить доступ к узлам внутри expr1 и expr2, которые указатель указывает на начало expr1 и expr2 Любая помощь?
- это определение узла в том же файле, что и LinkedList.h, и LinkedList.cpp содержит файл .h? похоже, что определение узла было недоступным в функции match() – 4pie0
Определение класса Node и LinkedList находится в том же файле с именем LinkedList.h; и это # включено в файл LinkedList.cpp, содержащий определение функции члена. –
Я не могу воспроизвести ошибку. Что такое сообщение об ошибке? – Beta