cwchen icon

[C] List Traversal with an Iterator

cwchen | PRO | 04/18/18 06:55:15 AM UTC | 0 ⭐ | 1007 👁️ | Never ⏰ | []
C |

630 B

|

None

|

0 👍

/

0 👎

bool test_list_iter()
{
    bool failed = false;
    
    // List: 4 -> 9 -> 5 -> NULL;
    List *lt = list_init(3, 4, 9, 5);
    if (lt == NULL) {
        perror("Failed to allocate List lt");
        return false;
    }
    
    int arr[] = {4, 9, 5};
    size_t i = 0;
    // Iterate through lt.
    for (Node *it = list_start(lt); !list_end(it); it = list_next(it)) {
        if (node_value(it) != arr[i]) {
            failed = true;
            goto LIST_FREE;
        }
        
        i++;
    }
 
LIST_FREE:
    list_free(lt);
    
    if (failed) {
        return false;
    }
    
    return true;
}

Comments