Top Banner
Introduction to Software Systems 1110/1140/1510/6710 ADTs The List ADT A List interface and its implementation: Part 1 Abstract Data Types: Lists 1 A1
6

Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Jul 19, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

ADTs The List ADT A List interface and its implementation: Part 1

Abstract Data Types: Lists 1 A1

Page 2: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

Abstract Data Types (ADTs)

Abstract data types describe containers for storing data elements. An ADT is abstract, not concrete. A container is a very general ADT, serving as a holder of objects. A list is an example of a specific container ADT. An ADT can be described in terms of the semantics of the operations that may be performed over it.

16

Abstract Data Types: Lists A1

Page 3: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

The List ADT

The list ADT is a container known mathematically as a finite sequence of elements. A list has these fundamental properties: •  duplicates are allowed •  order is preserved A list may support operations such as these: •  create: construct an empty list •  add: add an element to the list •  is empty: test whether the list is empty

17

Abstract Data Types: Lists

401-405

A1

Page 4: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

Our List Interface

We will explore lists using an interface with the following methods: public void add(T value);public T get(int index);public int size();public void remove(int index);public void reverse();public String toString();

18

Abstract Data Types: Lists A1

Page 5: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

A B C D

A B C D

A B C D

void add(T value);

T get(int index);

int size();

void remove(int index);

void reverse();

String toString();

19

Abstract Data Types: Lists

A B C D

A B C D

A B C D

C

4

A B C D

D B A

D B A D B A

D

2

2

A1

Page 6: Abstract Data Types: Lists 1 - CECS - ANUcourses.cecs.anu.edu.au/courses/COMP6710/lectures/A01.pdf · Abstract Data Types (ADTs) Abstract data types describe containers for storing

Introduction to Software Systems 1110/1140/1510/6710

List Implementation

•  Linked list –  Logical fit to a list, easy to grow, contract –  Need to traverse list to find arbitrary element

•  Arrays –  Fast lookup of any element –  A little messy to grow and contract

20

Abstract Data Types: Lists A1