Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def diag_print(data):
- '''
- prints a 2d array diagonally
- data is a list of list (aka 2d array)
- '''
- m = len(data)
- n = len(data[0])
- visited = {}
- queue = [(0,0)]
- curr_level = 0
- going_front=True
- while(len(queue) > 0):
- u = queue.pop(0)
- print data[u[0]][u[1]],
- #print a new line when a level is finished traversing
- if going_front and u[1]==curr_level:
- print
- curr_level += 1
- if curr_level==n-1:
- going_front=False
- if not going_front and u[1]==curr_level:
- print
- #enqueue the childs of each node
- if u[0]+1 < m and (u[0]+1,u[1]) not in visited:
- queue.append((u[0]+1,u[1]))
- visited[(u[0]+1,u[1])] = True
- if u[1]+1 < n and (u[0],u[1]+1) not in visited:
- queue.append((u[0],u[1]+1))
- visited[(u[0],u[1]+1)] = True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement