CSc 120: Diagonal to List (Recursive)
Expected Behavior
Write a recursive function diag2list_rec(grid), where
grid is an n × n square list of lists, that returns
a list consisting of the diagonal elements of grid, i.e.,
the elements grid[0][0], grid[1][1], ...,
grid[n–1][n–1].
You can assume that grid is a square list of lists, i.e., you don't
have to check for this.
You may find a helper function useful for this problem.
Programming Requirements
Solve this problem using recursion. You are allowed to use only
the following programming constructs:
-
if statements;
-
return statements;
-
assignment;
-
recursive function calls (if you use any helper functions
then these must all be recursive as well);
-
comparison operations (==, !=, etc.);
-
list indexing and slicing;
-
list concatenation/extension.
Solutions that go outside these constructs, e.g., by
using for/while loops or list comprehensions,
will not get credit.
Examples
-
diag2list_rec([[1,2,3],[4,5,6],[7,8,9]])
return value: [1,5,9]
-
diag2list_rec([[1,2][3,4]])
return value: [1,4]
-
diag2list_rec([[1]])
return value: [1]
-
diag2list_rec([])
return value: []