Пример #1
0
void printAliases()
{
    if (size == 0) {
        return;
    }
    
    Node *n = head;
    while (n != NULL) {
        printNodeValues(n);
        n = n->next;
    }    
}
Пример #2
0
void printNodeAt(int nodeNumber)
{
    if (head == NULL) {
        return;
    }
    
    int i;
    Node * n = head;
    for (i = 0; i < nodeNumber; i++) {
        n = n->next;
    }
    
    printNodeValues(n);
}
Пример #3
0
Файл: huffman.c Проект: rarry/it
Node * buildHuffmanTree(Node *nodes[])
{
    int i;
    for(i=0; i<LETTERS_COUNT-1; i++)
    {
        int indexOfSmallest = findSmallest(nodes, -1);
        int indexOfSecondSmallest = findSmallest(nodes, indexOfSmallest);
        printf("smallest: %d\n", indexOfSmallest);
        printf("second smallest: %d\n", indexOfSecondSmallest);

        Node *smallest = nodes[indexOfSmallest];
        Node *secondSmallest = nodes[indexOfSecondSmallest];

        // merge nodes
        Node *tree = malloc(sizeof(Node));
        tree->value = smallest->value + secondSmallest->value;
        tree->letterIndex = 127;
        tree->left = smallest;
        tree->right = secondSmallest;

        nodes[indexOfSmallest] = tree;
        secondSmallest->value = -1;
        printNodeValues(nodes);
    }

    Node * tree;
    for(i=0; i<LETTERS_COUNT-1; i++)
    {
        if(nodes[i]->value >= 0)
        {
            tree = nodes[i];
            break;
        }
    }

    return tree;
}