Пример #1
0
void printPathTo(Node* node, int* val)
{
    std::cout << *node->getValue() << " ";
    if(val == node->getValue())
    {
        return;
    }
    else if(*val < *node->getValue())
    {
        printPathTo(node->getLeft(), val);
    }
    else if(*val > *node->getValue())
    {
        printPathTo(node->getRight(), val);
    }
}
Пример #2
0
void FilePath::printPathTo(ino_t this_inode)
{
		ino_t my_inode;
		char its_name[BUFSIZ];
		if( get_inode("..") != this_inode)
		{
				chdir("..");
				inum_to_name(this_inode, its_name, BUFSIZ);
				my_inode = get_inode(".");
				printPathTo(my_inode);
				printf("/%s", its_name);
		}
		strcpy(path, its_name);
}
Пример #3
0
int main(){

    std::array<int, TREE_SIZE> valueArray;
    
    for(int i = 0; i< valueArray.size(); i++)
    {
        valueArray[i] = i;
    }

    Node* rootNode = buildTree(valueArray, 0, TREE_SIZE - 1);


    // printTree(rootNode);
    // std::cout << std::endl << std::endl;
    printPathTo(rootNode, &valueArray[7]);
    std::cout << std::endl;

    std::vector<LinkedList*> lists;

    bool unbalance = 0;

    int extra1 = 10;
    int extra2 = 11;

    if(unbalance)
    {
        Node* extraN1 = new Node();
        extraN1->setValue(&extra1);
        Node* extraN2 = new Node();
        extraN2->setValue(&extra2);
        extraN1->setRight(extraN2);
        rootNode->getRight()->getRight()->getRight()->setRight(extraN1);

    }

    getLayers(lists, rootNode, 0);

    for(int i = 0; i < lists.size(); i++)
    {
        printLL(lists.at(i));
        std::cout << std::endl;
    }

    std::pair<bool, int> balanceResultPair = isBalanced(rootNode);
    bool balanceResult = balanceResultPair.first;

    std::cout << std::endl << "Balanced? " << balanceResult << " Height: " << balanceResultPair.second << std::endl;
}
Пример #4
0
char* FilePath::getPath()
{
		printPathTo(get_inode("."));
		return path;	
}