void array_insert(array_t* input, size_t index, array_t* peer) { if(index<0) array_prepend(input, peer); else if(index>=input->length) array_append(input, peer); else { arrayelement_t* element=peer->last; while(element) { array_insert_element(input, index, element->data); element=element->previous; } } }
void node_prepend_child(Node* parent, Node* child) { array_prepend( &(parent->children), sizeof(Node*), &child); }