TreeNode * Tree_insert(TreeNode * node, int value) { if(node == NULL) return TreeNode_create(value); if(value < node -> value) node -> left = Tree_insert(node -> left, value); if(value > node -> value) node -> right = Tree_insert(node -> right, value); // If they're equal, then we have nothing to do... return node; }
//Function takes frequencies from lists and creates list nodes ListNode * ListNode_build(Node * freqList) { ListNode * head = NULL; while(freqList != NULL) { TreeNode * tn = TreeNode_create(freqList -> char_val, freqList -> freq); ListNode * wn = ListNode_create(tn); head = ListNode_insert(head, wn); freqList = freqList -> next; } return head; }