diff options
Diffstat (limited to 'projects/09/List')
-rw-r--r-- | projects/09/List/List.jack | 46 | ||||
-rw-r--r-- | projects/09/List/Main.jack | 17 |
2 files changed, 0 insertions, 63 deletions
diff --git a/projects/09/List/List.jack b/projects/09/List/List.jack deleted file mode 100644 index c62fe28..0000000 --- a/projects/09/List/List.jack +++ /dev/null @@ -1,46 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: projects/09/List/List.jack - -/** Represents a linked list of integers. */ -class List { - field int data; // a list consists of a data field, - field List next; // followed by a list - - /* Creates a List. */ - constructor List new(int car, List cdr) { - let data = car; // the identifiers car and cdr are used in - let next = cdr; // memory of the Lisp programming language - return this; - } - - /** Accessors. */ - method int getData() { return data; } - method int getNext() { return next; } - - /** Prints this list. */ - method void print() { - var List current; // initializes current to the first item - let current = this; // of this list - while (~(current = null)) { - do Output.printInt(current.getData()); - do Output.printChar(32); // prints a space - let current = current.getNext(); - } - return; - } - - /** Disposes this List by recursively disposing its tail. */ - method void dispose() { - if (~(next = null)) { - do next.dispose(); - } - // Uses an OS routine to recycle this object. - do Memory.deAlloc(this); - return; - } - - // More list processing methods can come here. - -} diff --git a/projects/09/List/Main.jack b/projects/09/List/Main.jack deleted file mode 100644 index 824eb6f..0000000 --- a/projects/09/List/Main.jack +++ /dev/null @@ -1,17 +0,0 @@ -// This file is part of www.nand2tetris.org -// and the book "The Elements of Computing Systems" -// by Nisan and Schocken, MIT Press. -// File name: projects/09/List/Main.jack - -/** Demonstrates the use of the List abstraction. */ -class Main { - function void main() { - // Creates and uses the list (2,3,5). - var List v; - let v = List.new(5,null); - let v = List.new(2,List.new(3,v)); - do v.print(); // prints 2 3 5 - do v.dispose(); // disposes the list - return; - } -} |