Assignment 6. Linked Lists


Due Saturday, November 16 at 11:59 pm Pacific

  • Having trouble meeting the deadline? Read about our course's late policy.
  • In this course, we express all date/times in Pacific time GMT -7. Our Paperless submission system also displays/records due dates and submission times in Pacific time.
  • This assignment is to be completed individually. Working in pairs/groups is not permitted.

Linked structures are a fundamentally different way of encoding sequences than the array-based approaches you worked with on Assignment 5. This assignment is all about manipulating, traversing, and exploring linked structures. It’s a three-parter. The first part is a hybrid coding/debugging exercise where you’ll work the debugger to escape from a maze. The second part is a warm-up exercise intended to get you playing around with doubly-linked lists. The third part is a coding exercise in which you’ll use linked lists to build a system that can be used to make nifty 2D graphics.

This assignment is to be completed individually. Working in pairs/groups is not permitted.

Learning goals

  • Students will continue to build and improve their skills of working with pointers.
  • Students will be able to use their knowledge of pointers to traverse and investigate linked data structures in the debugger.
  • Students will understand the fundamental differences between storing data in contiguous memory location as compared to organizing data pointer links.
  • Students will gain practice with different "idioms" of linked list usage, including pointer

Assignment parts

This assignment consists of a warmup debugging exercises and three programming tasks.

  • The Labyrinth

    Make your way out of a maze using only pointers and linked lists.

  • Doubly Linked List Warmup

    Practice with doubly-linked lists (where each cell has a prev and next), which come into play in the Particle System.

  • Particle System

    Create stunning animations by leveraging your class, pointer, and linked list knowledge!

Getting started

We provide a ZIP of the starter project. Download the zip, extract the files, and double-click the .pro file to open the project in Qt Creator.

📩 Starter code

Getting Help

Keep an eye on the Ed forum for an announcement of the Assignment 6 YEAH (YEAH = Your Early Assignment Help) group session where our veteran section leaders will answer your questions and share pro tips. We know it can be daunting to sit down and break the barrier of starting on a substantial programming assignment – come to YEAH for advice and confidence to get you on your way!

We also here to help if you get run into issues along the way! The Ed forum is open 24/7 for general discussion about the assignment, lecture topics, the C++ language, using Qt, and more. Always start by searching first to see if your question has already been asked and answered before making a new post.

To troubleshoot a problem with your specific code, your best bet is to bring it to the LaIR helper hours or office hours.

Submission instructions

Before you call it done, run through our submit checklist to be sure all your ts are crossed and is are dotted. Make sure your code follows our style guide. Then upload your completed files to Paperless for grading.

Please submit only the files you edited; for this assignment, these files will be:

  • Labyrinth.cpp.
  • LabyrinthEscape.cpp.
  • DoublyLinkedLists.cpp.
  • ParticleSystem.h and ParticleSystem.cpp. (Don't forget the header file!)

You don't need to submit any of the other files in the project folder.

🏁 Submit to Paperless

If you modified any other files that you modified in the course of coding up your solutions, submit those as well. And that’s it! You’re done!

Good luck, and have fun!