PLSQL - реализующая функция, которая возвращает количество дочерних элементов для узла в дереве - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу реализовать следующую функцию в PLSQL: https://www.geeksforgeeks.org/number-children-given-node-n-ary-tree/.

Есть ли способ использовать queue.push в качестве функции?Кажется, что это невозможно.

// Function to calculate number 
// of children of given node 
int numberOfChildren(Node* root, int x) 
{ 
    // initialize the numChildren as 0 
    int numChildren = 0; 

    if (root == NULL) 
        return 0; 

    // Creating a queue and pushing the root 
    queue<Node*> q; 
    q.push(root); 

    while (!q.empty()) { 
        int n = q.size(); 

        // If this node has children 
        while (n > 0) { 

            // Dequeue an item from queue and 
            // check if it is equal to x 
            // If YES, then return number of children 
            Node* p = q.front(); 
            q.pop(); 
            if (p->key == x) { 
                numChildren = numChildren + p->child.size(); 
                return numChildren; 
            } 

            // Enqueue all children of the dequeued item 
            for (int i = 0; i < p->child.size(); i++) 
                q.push(p->child[i]); 
            n--; 
        } 
    } 
    return numChildren; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...