вычисление выражений в C ++ с использованием LinkedList

0

Предположим, что у вас есть два полиномиальных выражения, я пытаюсь закодировать программу, которая выполняет 3 разных операции: 1.match (равенство) 2.sum (добавление) и 3.dot (умножение).

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 Любая помощь?

Теги:
class
pointers

1 ответ

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

просто исправьте оператор while

    while (expr1->head->coef && expr2->head->coef) {
        // do something                            ^
    }
    ^

также убедитесь, что Node доступен из LinkedList.cpp (так что это istance в LinkedList.h который включает этот cpp)

ошибка была:

main.cpp: В функции-члене 'bool LinkedList :: match (LinkedList *, LinkedList *): main.cpp: 78: ошибка: ожидаемое первичное выражение перед'} token main.cpp: 78: error: expected '; перед '} токеном

также вам не нужно #include <conio.h> здесь

  • 0
    Вы видели код? не будет ли неприятно получить доступ к узлам внутри списка с разыменованием дважды?
  • 0
    это ваш код, пожалуйста, просто исправьте это заявление, и ваша проблема должна быть решена. Я взял ваш код и скомпилировал его, он работает
Показать ещё 3 комментария

Ещё вопросы

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