Homework 2 Solution

Homework 2 Solution - Spring 2009 CS 32 Homework 2 Solution...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Spring 2009 CS 32 Homework 2 Solution Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 1: #include <stack> using namespace std; const char WALL = 'X'; const char OPEN = '.'; const char SEEN = 'o'; class Coord { public: Coord(int rr, int cc) : m_r(rr), m_c(cc) {} int r() const { return m_r; } int c() const { return m_c; } private: int m_r; int m_c; }; bool pathExists(char maze[][10], int sr, int sc, int er, int ec) { if (sr < 0 || sr > 9 || sc < 0 || sc > 9 || er < 0 || er > 9 || ec < 0 || ec > 9 || maze[sr][sc] != OPEN || maze[er][ec] != OPEN) return false; stack<Coord> toDo; toDo.push(Coord(sr,sc)); while ( ! toDo.empty() ) { Coord curr = toDo.top(); toDo.pop();
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
const int cc = curr.c(); if (cr == er && cc == ec) return true; maze[cr][cc] = SEEN; // anything non-OPEN will do if (maze[cr-1][cc] == OPEN) toDo.push(Coord(cr-1,cc)); if (maze[cr+1][cc] == OPEN) toDo.push(Coord(cr+1,cc)); if (maze[cr][cc+1] == OPEN) toDo.push(Coord(cr,cc+1)); if (maze[cr][cc-1] == OPEN) toDo.push(Coord(cr,cc-1)); } return false; } Problem 2: (1,1) (1,2) (1,3) (1,4) (2,4) (3,4) (3,3) (3,5) (4,5) Problem 3: Make three changes to the Problem 1 solution: Change #include <stack> to #include <queue> Change stack<Coord> toDo; to queue<Coord> toDo; Change Coord curr = toDo.top(); to Coord curr = toDo.front(); Problem 4: (1,1) (2,1) (1,2) (3,1) (1,3) (1,4) (2,4) (3,4) (3,5) The stack solution visits the cells in a depth-first order: it continues along a path until it hits a dead end, then
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/07/2009 for the course CS 32 taught by Professor Davidsmallberg during the Spring '08 term at UCLA.

Page1 / 7

Homework 2 Solution - Spring 2009 CS 32 Homework 2 Solution...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online