Стек как массив узлов - PullRequest
       30

Стек как массив узлов

0 голосов
/ 21 октября 2019

Я прохожу курс Data Structures с использованием языка Си. Я читал об определенной реализации стеков в двоичном дереве (точнее, дереве выражений)

Это структура узла

{
 struct Node *right,*left;
 char data;
} Node;

Следующая функция:

Node * createExpressionTree(char* a,int len)
{
    Node *temp;
    Node *stack[100];
    int top=-1,i=0;
    .
    .
    .
    temp->left=pop(stack,&top);
    .
    .
    .
}

Я предполагаю, stack - это двумерный массив узлов, и top, очевидно, имеет тип int.

Теперь в этой функции:

Node* pop(Node** stack,char *t)
{
    Node* temp;
    temp=stack[*t];
    --*t;
    return temp;
}

Я так потерян сейчас. Почему второй аргумент функции типа строка (массив символов), но в вызове функции передается значение int.

и как *t работает как индекс для stack. И в чем смысл --*t;?

В курсе C, который я выбрал, массивы были покрыты, но я не понимаю, как работает массив stack в этом случае, индексы и все.

Могу ли я получить разъяснения по поводу вышеизложенного? Заранее спасибо

Редактировать: Люди, похоже, смущены сочетанием бинарных деревьев со стеками. Но программа конвертирует данное постфиксное выражение в дерево выражений с использованием стеков. Программа выдает корректный вывод строки с указанными выше параметрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...