Algorithms and OOD (CSC 207 2014F) : EBoards

CSC207.01 2014F, Class 30: OOD in Practice: Designing a List Interface

New lab partners!




Upcoming Work

Extra Credit


Peer Support


The design of ADTs, revisited

What are the key ideas in designing an ADT?

Exercise: Designing a list ADT

With your partner, answer each of the following. (I'll probably stop you along the way to share and compare answers.)

What is the basic "philosophy" of lists?

Can we efficiently insert and index? (Efficiently usually means O(1), at least in this case.)

Sam's attempt to tie our ideas together.

What's the difference between how we think about a Vector (dynamic array) and a List?

What use cases do you envision?

What general categories of operations/methods you expect a list to provide?

What are the details of some of the methods within each category?

E.g., insert, remove


What's a position?

Quick notes on implementation

What are the key ideas in designing a data structure / implementing an ADT?