Presentation is loading. Please wait.

Presentation is loading. Please wait.

Abstract Data Types data object set or collection of instances

Similar presentations


Presentation on theme: "Abstract Data Types data object set or collection of instances"— Presentation transcript:

1 Abstract Data Types data object set or collection of instances
integer = {0, +1, -1, +2, -2, +3, -3, …} daysOfWeek = {S,M,T,W,Th,F,Sa} Any set or collection is a data object. Order in which you list the instances doesn’t matter. {1,2,3} and {3,2,1} are the same data object.

2 Data Object instances may or may not be related
myDataObject = {apple, chair, 2, 5.2, red, green, Jack} The instances of integer and daysOfWeek are related. In the former, all instances are whole numbers, whereas in the latter all instances name days of the week. The instances of myDataObject don’t seem to be related.

3 Data Structure Data object + Among instances of integer 369 < 370
relationships that exist among instances and elements that comprise an instance Among instances of integer 369 < 370 = 284 You can have ordering relationships –2 before –1 before 0 before 1 etc (relational operators such as <, >, =, etc). Elements could be related by operations such as add, subtract, etc.

4 Data Structure Among elements that comprise an instance 369
3 is more significant than 6 3 is immediately to the left of 6 9 is immediately to the right of 6

5 add, subtract, predecessor, multiply
Data Structure The relationships are usually specified by specifying operations on one or more instances. add, subtract, predecessor, multiply

6 Linear (or Ordered) Lists
instances are of the form (e0, e1, e2, …, en-1) where ei denotes a list element n >= 0 is finite list size is n

7 Linear Lists L = (e0, e1, e2, e3, …, en-1) relationships
e0 is the zero’th (or front) element en-1 is the last element ei immediately precedes ei+1 A data object is a set of instances; an instance of a linear list is an ordered set of elements.

8 Linear List Examples/Instances
Students in MyClass = (Jack, Jill, Abe, Henry, Mary, …, Judy) Exams in MyClass = (exam1, exam2, exam3) Days of Week = (S, M, T, W, Th, F, Sa) Months = (Jan, Feb, Mar, Apr, …, Nov, Dec) Size of Students in our class is 240, Exams is 3, DOW is 7, and Months is 12. Notice that Days of Week is used as an example of both a data object and of a linear list. As a data object, {S, M, T, …} and {M, W, S, …} describe the same data object with 7 allowable instances S, M, T, … As a linear list (S, M, T, …) and (M, W, S, …) are two different instances of a linear list. Linear List itself may be viewed as data object, which is simply the set of all possible linear list instances.

9 Linear List Operations—Length()
determine number of elements in list L = (a,b,c,d,e) length = 5

10 Linear List Operations—Retrieve(theIndex)
retrieve element with given index L = (a,b,c,d,e) Retrieve(0) = a Retrieve(2) = c Retrieve(4) = e Retrieve(-1) = error Retrieve(9) = error

11 Linear List Operations—IndexOf(theElement)
determine the index of an element L = (a,b,d,b,a) IndexOf(d) = 2 IndexOf(a) = 0 IndexOf(z) = -1 The index of a nonexistent element is defined to be –1. When theElement is in the list an index between 0 and Size()-1 is the result. So –1 would be an invalid index and is used to represent the case when theElement is not in the list

12 Linear List Operations—Delete(theIndex)
delete and return element with given index L = (a,b,c,d,e,f,g) Delete(2) returns c and L becomes (a,b,d,e,f,g) index of d,e,f, and g decrease by 1

13 Linear List Operations—Delete(theIndex)
delete and return element with given index L = (a,b,c,d,e,f,g) Delete(-1) => error Delete(20) => error

14 Linear List Operations—Insert(theIndex, theElement)
insert an element so that the new element has a specified index L = (a,b,c,d,e,f,g) Insert(0,h) => L = (h,a,b,c,d,e,f,g) index of a,b,c,d,e,f, and g increase by 1

15 Linear List Operations—Insert(theIndex, theElement)
L = (a,b,c,d,e,f,g) Insert(2,h) => L = (a,b,h,c,d,e,f,g) index of c,d,e,f, and g increase by 1 Insert(10,h) => error Insert(-6,h) => error

16 Data Structure Specification
Language independent Abstract Data Type C++ Class

17 Linear List Abstract Data Type
AbstractDataType LinearList { instances ordered finite collections of zero or more elements operations IsEmpty(): return true iff the list is empty, false otherwise Length(): return the list size (i.e., number of elements in the list) Retrieve(index): return the indexth element of the list IndexO f(x): return the index of the first occurrence of x in the list, return -1 if x is not in the list Delete(index): remove and return the indexth element, elements with higher index have their index reduced by 1 Insert(theIndex, x): insert x as the indexth element, elements with theIndex >= index have their index increased by 1 }

18 Linear List As A C++ Class
To specify a general linear list as a C++ class, we need to use a template class. We shall study C++ templates later. So, for now we restrict ourselves to linear lists whose elements are integers.

19 Linear List As A C++ Class
class LinearListOfIntegers { bool IsEmpty() const; int length() const; int Retrieve(int index) const; int IndexOf(int theElement) const; int Delete(int index); void Insert(int index, int theElement); }

20 Data Structures In Text
Generally specified as a C++ (template) class.


Download ppt "Abstract Data Types data object set or collection of instances"

Similar presentations


Ads by Google