Stanislav Stecenko написав:Я же щас воюю з формулами
Це дуже допоможе тим, хто за півроку хотітиме щось почитати про наслідування і зайде в цю гілку. Створюйте нову гілку - описуйте задачу повністю чи принаймні давайте посилання на старі теми.
Stanislav Stecenko написав:5 це предок +
+ це предок 1/2
Ви абсолютно не розумієте класів і ООП.
У вас тут дві абсолютно окремі ієрархічні структури: класова (хоча, як я бачу, ви вирішили відбутися одним класом) і дерево розбору виразу (яке ви чомусь будуєте як однозв'язний список). А ще є двовимірна структура формули, яку ви реалізуєте в тому ж дереві/списку, що теж не ґут. Вам не про нащадків в сенсі ООП треба, а про гілки дерева.
Для початку одразу визначиться із тим, що у об'єкта в формулі є різні гілки: є наступні елементи, а є підлеглі. 34+1 і 34+1 складаються з одних і тих самих знаків в однаковому порядку, але в першому виразі + є наступником 3, а в другому - наступником 4 (а 4 в обох - підлеглий 3). Тобто список, де кожен об'єкт посилається на одну гілку, вам зовсім не підходить
▼Прихований текст
Ще як мінімум треба буде продумати, що з великими дробами робити: там основний елемент - дріб, а решта (2 підлеглих) навколо нього будується. Звісно, питання технічне, але продумати варто. Зверніть увагу, як в TeXі реалізовано.
А тепер - відповідь на ваше питання: щоб знайти материнську гілку в дереві виразу, треба або зберігати посилання на неї в об'єкті, або обходити все дерево, доки не буде знайдено об'єкт, серед підлеглих і наступних гілок якого не буде нашого, це і буде материнська гілка. Раджу перший спосіб, як швидший.