title: Resources for Learning Box and Pointer Diagrams
body: <p>I am currently working my way through <a href="http://www-inst.eecs.berkeley.edu/~cs3/su11/" rel="nofollow noreferrer">Berkely's summer 2011 CS3L course</a> and am struggling to understand Box and Pointer Diagrams. How to build them and how to interpret them.</p>
  
  <p>The instructions provided are <a href="https://docs.google.com/document/d/1ASYBibz2t62GA1alk7yVgZijvEDVE449MgvT6gxttqU/edit?hl=en_US." rel="nofollow noreferrer">here</a>.
  However, I am still not "getting it."</p>
  
  <p>I understand that lists are combinations of pairs and that the cdr of a pair may point to another pair. I also understand that the pair that the cdr points to may be another list. I just don't understand how to draw it all out in a diagram.</p>
  
  <p>For reference, here is an example of a problem I am being given is:</p>
  
  <pre><code>(define cal 
    (list (append (list (cons (list 1 2) (cons 3 '())))
                  (list (cons 4 (cons 5 '())))) 
          6 
          7))
  </code></pre>
  
  <p>Given a code like the one above, I am suppose to draw the box and pointer diagram and then be able to say what combination of car and cdr is necessary to get any given number in the list.</p>
  
  <p>Again, for reference, below is the diagram I should have been able to come up with:</p>
  
  <p><a href="https://i.stack.imgur.com/Q2l6B.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Q2l6B.jpg" alt="enter image description here"></a></p>
  
  <p>To reiterate, what I'm looking for is a video or article that may explain the building of box and pointer diagrams more clearly.</p>
  
  <p>Thank you in advance for anyone willing to point me in the right direction.</p>