Map cloneMap(Map map) { Map newmap; newmap = newBlock(Map); enableIteration(newmap, newMapIterator); newmap->bst = cloneBST(map->bst); return newmap; }
Map newMap() { Map map; map = newBlock(Map); enableIteration(map, newMapIterator); map->bst = newBST(string); return map; }
Iterator newListIterator(int size, CompareFn cmpFn) { Iterator iterator; iterator = newBlock(Iterator); enableIteration(iterator, 0); iterator->elementSize = size; iterator->stepFn = stepListIterator; iterator->cmpFn = cmpFn; iterator->head = iterator->tail = NULL; iterator->data = NULL; return iterator; }
Iterator newStepIterator(int size, StepIteratorFn stepFn) { Iterator iterator; iterator = newBlock(Iterator); enableIteration(iterator, 0); iterator->elementSize = size; iterator->stepFn = stepFn; iterator->cmpFn = NULL; iterator->head = iterator->tail = NULL; iterator->data = NULL; return iterator; }