Linked List Lab
This lab concerns the linked lists and dynamic memory allocation.
                
These are tasks, not questions to be answered.
All that you turn in is the resultant code.
                
- Copy the directory
~cs253/Lab/LinkedList
to a convenient place in your home directory.
- Compile & link
main.cc
& ll.cc
together.
- Create a
Makefile
so that you won’t have to type g++ again.
Use at least -Wall
.
- Run the resultant executable; observe how the program works.
Reading the code may help.
- Fix the memory leak in
.remove()
.
- Find uses of
this->
, which are always suspicious. Remove them.
Does everything still work?
.initialize()
methods often indicate that the author
doesn’t understand constructors. Turn them into ctors.
- Are your ctors using member initialization lists? Make them do so.
- The method
.remove()
uses a pointer argument to return a value.
How crass—use a reference, instead.
- Add a method
.print()
that displays the list.
Add another case (4. print
) in main() that uses it.
- Using
.print()
is tacky.
Replace it with an overloaded <<
operator so you can use <<
on a
LinkedList
object, just like any other type.
- Are there any remaining memory leaks? What happens when
a
LinkedList
object is destroyed? Fix that.
- Create a tar file
link.tar
containing your work:
tar -cvf link.tar Makefile main.cc ll.cc ll.h
How to submit your work:
In Canvas, check in the
file
link.tar
to the assignment
“Lab05”.
                
How to receive negative points:
Turn in someone else’s work.