"Слияние" упорядоченных деревьев

  1. Задание на 4
    1. function next(var stack : TStack) : PTreeNode;
      1. возвращает очередную по порядку вершину дерева
      2. на вход подается стек, в котором лежат вершины
        1. если стек пуст, функция возвращает nil
        2. пока стек не пуст
          1. из стека извлекается верхняя вершина (n)
            1. если n помечена нулем
              1. n помечается единицей
              2. n помещается в стек
              3. в стек помещается ее левый сын (если есть), помеченный нулем
            2. если n помечена единицей
              1. в стек кладется ее правый сын (если есть), помеченный нулем
              2. функция возвращает n (и заканчивает работу)
      3. первый раз функции передается стек, в котором лежит корень дерева, помеченный нулем
      4. если в дереве N вершин, то N последовательных вызовов next возвращают все вершины в порядке возрастания
  2. Задание на 5
    1. procedure printTrees(t1, t2 : PTreeNode);
      1. распечатать значения всех вершин деревьев t1 и t2 в порядке возрастания