Algorithms and OOD (CSC 207 2014F) : EBoards

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


New lab partners!

Overview

Preliminaries

Admin

Upcoming Work

Extra Credit

Academic

Peer Support

Questions

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

insert

What's a position?

Quick notes on implementation

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