Mahdi Rizk

EECS 280, Programming and Introductory Data Structures

Doubly Linked List and Text Editor Buffer

A templated doubly linked list with a bidirectional iterator, used as the storage for a cursor-based text buffer that drives a terminal text editor.

WhenFall 2024
TypeCoursework
CourseEECS 280

What I built

  • Implemented a templated doubly linked List<T> with the Big Three (copy constructor, assignment with self-check, destructor), push/pop at both ends, and iterator-based insert and erase.
  • Wrote a nested bidirectional Iterator with prefix and postfix ++/-- and equality operators.
  • Built a TextBuffer on top of the list that tracks cursor row, column, and index across forward/backward, up/down, home/end, insert, and remove, recomputing the column when the cursor wraps to the previous line.
  • Wrote about 50 unit tests for the List and verified the buffer with the LINE visualizer against reference transcripts.