int main() { printf("Testing lists...\n"); List *list = (List *) create_list(); assert(list != NULL); assert(list->data == NULL); assert(list->next == NULL); int w = 42; int x = 1; int y = 2; int z = 3; append_to_list(list, &x); assert(*(int *)(list->data) == 1); assert(list->next != NULL); append_to_list(list, &y); assert(*(int *)(list->next->data) == 2); assert(list->next->next != NULL); append_to_list(list, &z); assert(*(int *)(list->next->next->data) == 3); assert(list->next->next->next != NULL); assert(list->next->next->next->data == NULL); assert(list->next->next->next->next == NULL); list = (List *) push_to_list(list, &w); assert(*(int *)(list->data) == 42); assert(list->next != NULL); list = (List *) pop_from_list(list); assert(*(int *)(list->data) == 1); assert(list_length(list) == 3); assert(list_index(list, &y) == 1); assert(list_index(list, &w) == -1); list = remove_from_list(list, &x); assert(*(int *)(list->data) == 2); list = push_to_list(list, &x); list = remove_from_list(list, &y); assert(*(int *)(list->next->data) == 3); printf("List tests passed\n"); return 0; }
void push_to_list(deque<int>& list, vector<NestedInteger>& nestedList) { for (int i = 0; i < nestedList.size(); i++) { if (nestedList[i].isInteger()) { list.push_back(nestedList[i].getInteger()); } else { push_to_list(list, nestedList[i].getList()); } } }
NestedIterator(vector<NestedInteger> &nestedList) { push_to_list(list, nestedList); }