Esempio n. 1
0
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);
 }