Снизу класс Grl для графа, функция добавление ребра и сам деструктор. Не понимаю как там указатель E[j] может стать nullptr? Ведь по логике, первая структура будет указывать на следующую и так далее, а последняя на первую, либо я не так понимаю это.
class GrL : public GrA {
public:
~GrL();
bool create(uint n);
bool addArc(uint, uint);
VList neighbors(uint v);
protected:
typedef struct Node { uint v; Node* next; } *PNode, **PPNode;
PPNode E;
void dfsr(uint start, VList & L, bool * & visited);
void bfsc(uint start, VList & L, bool * & visited);
};
bool GrL::addArc(uint i, uint j)
{
PNode p = new(nothrow) Node;
if (p == nullptr)
return false;
p->v = j;
p->next = E[i];
E[i] = p;
if (!isDir)
{
PNode p = new(nothrow) Node;
if (p == nullptr)
return false;
p->v = i;
p->next = E[j];
E[j] = p;
}
++m;
return true;
}
GrL::~GrL()
{
for (int j = 0; j < n; j++)
{
PNode p;
while (E[j] != nullptr)
{
p = E[j];
E[j] = E[j] ->next;
delete p;
}
}
delete[]E;
}
А что именно не понимаете?
Нарисуйте на бумаге ячейки массива, и из каждой вниз висит веревочка с бумажными флажками.
Встали в ячейку (внешний цикл), и пошли по веревочке вниз. Левой рукой берём флажок (p), правую по верёвочке переставляем на следующий (next), теперь левой обрываем флажок, и повторяем, подтягивая левую к правой, пока веревочка не кончится (внутренний цикл while)
Когда веревочка кончилась, вырываем её из ячейки delete[]E
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Надо сравнить лексемы вводимого текста с лексемами из текстового файла и выводить следующую строку от найденной лексемыНо не удаётся вывести
помогите мне отсортировать список по имени, я понятия не имею как его нормально отсортировать
Столкнулся с такой задачей как сделать форму, на которой, например, есть два виджета LineEdit и виджет карты (я взял QWebWidget и открыл в нем ЯндексКарты)