prepared by dr. inayatullah shah1 data structures csc212
Post on 20-Dec-2015
214 views
TRANSCRIPT
![Page 1: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/1.jpg)
Prepared by Dr. Inayatullah Shah 1
Data Structures
CSC212
![Page 2: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/2.jpg)
Prepared by Dr. Inayatullah Shah 2
Data Types & Data Structures
• Applications/programs read, store and operate on data. Finally output results.
• What is data? Numbers, Characters, etc.
Application/ Program
Data Data
![Page 3: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/3.jpg)
Prepared by Dr. Inayatullah Shah 3
Data Types & Data Structures
• Data is classified into data types. e.g. char, float, int, etc.
• A data type is (i) a domain of allowed values and (ii) a set of operations on these values.
![Page 4: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/4.jpg)
Prepared by Dr. Inayatullah Shah 4
Data Types & Data Structures
• Examples
Data Type Domain Operationsboolean 0,1 and, or, =, etc.
char ASCII =, <>, <, etc.
integer -maxint to +maxint
+, _, =, ==, <>, <, etc.
![Page 5: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/5.jpg)
Prepared by Dr. Inayatullah Shah 5
Data Types & Data Structures
• int i,j; i, j can take only integer values and only integer operations can be carried out on i, j.
• Built-in types: defined within the language e.g. int,float, etc.
• User-defined types: defined and implemented by the user e.g. using typedef.
![Page 6: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/6.jpg)
Prepared by Dr. Inayatullah Shah 6
Data Types & Data Structures
• Simple Data types: also known as atomic data types have no component parts. E.g. int, char, float, etc.
21 3.14 ‘a’
![Page 7: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/7.jpg)
Prepared by Dr. Inayatullah Shah 7
Data Types & Data Structures
• Structured Data types: can be broken into component parts. E.g. record, array, set, file, etc. Example: a student record.
A H M A D
20
C S C
Name
Age
Branch
A Component part
![Page 8: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/8.jpg)
Prepared by Dr. Inayatullah Shah 8
Data Types & Data Structures
• A data structure is a data type whose values (i) can be decomposed into a set of component elements each of which is either simple (atomic) or another data structure (ii) include a structure involving the component parts.
![Page 9: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/9.jpg)
Prepared by Dr. Inayatullah Shah 9
Data Types & Data Structure
Possible Structures: Set, Linear, Tree, Graph.
SET
LINEAR
TREE
GRAPH
![Page 10: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/10.jpg)
Prepared by Dr. Inayatullah Shah 10
Data Types & Data Structures
• What is the domain of a structured data type? Operations?
• Example: boolean Sample[3];
000
001
010
011 100
101
110
111Domain
1 0 0
![Page 11: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/11.jpg)
Prepared by Dr. Inayatullah Shah 11
Data Types & Data Structures
• Example: Operations: Sample[0] = 1;C = Sample[1]; etc.
Elements
Structure
Domain Operations
Data Type/ Structure
![Page 12: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/12.jpg)
Prepared by Dr. Inayatullah Shah 12
Abstract Data Types (ADTs)
• Abstraction? Hides details, provides only the essentials.
• Example: an integer 165 = 1.102+6.101+5.100, procedures/subprograms, etc.
• Abstract Data Types (ADTs): Simple or structured data types whose implementation details are hidden…
![Page 13: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/13.jpg)
Prepared by Dr. Inayatullah Shah 13
ADTs
• Questions about data types: – (i) What values are in the domain? What
operations can be performed on the values of a particular data type?
– (ii) How is the data type represented? How are the operations implemented?
![Page 14: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/14.jpg)
Prepared by Dr. Inayatullah Shah 14
ADTs
• ADTs specification answers the ‘what’ questions. Done first.
• ADTs implementation answers the ‘how’ questions. Done after specification.
• Users & Implementers.• Users of an ADT need only know the specification
…. no implementation details. advantage• Programmer who implements ADT is concerned
with..specification, representation, implementation.
![Page 15: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/15.jpg)
Prepared by Dr. Inayatullah Shah 15
ADTs
Elements Structure
OperationsDomain
Specification
Representation
Implementation
User of an ADTmust only know this
Implementer mustknow all these.
![Page 16: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/16.jpg)
Prepared by Dr. Inayatullah Shah 16
ADT: Example
ADT String1
Design (Specification):Elements: One character.
Structure: elements (characters) are linearly arranged.
Domain: There are 0 to 80 chars in a string, therefore 1+128+1282+…..+12880 possible strings in the domain.
Operations:
1. Append (c: char)
Requires: The length of the string must be less than 80.
Results: c is appended to the right end of the string.
![Page 17: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/17.jpg)
Prepared by Dr. Inayatullah Shah 17
ADT: Example
2. Remove Requires: The length of the string must be greater than 0. Results: The rightmost character of the string is removed and it is returned as
the output of this operation. The string’s length is decreases by 1.3. MakeEmpty Requires: The length of the string must be less than 80. Results: all characters are removed.4. Concatenate (R: String) Results: A string R is concatenated to the right of the string. 5. Reverse6. Length7. Equal (R: String)8. GetChar (int i) Requires: The length of the string must be greater than or equal to i.Results: Return the i-th character in the string.
![Page 18: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/18.jpg)
Prepared by Dr. Inayatullah Shah 18
Note ..
• In Java the class construct is used to declare new data types.
• In Java operations are implemented as methods.
![Page 19: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/19.jpg)
Prepared by Dr. Inayatullah Shah 19
ADT Representation in Java
public class String1 extends Object {private char[] str;private int size;
public void Append (char c) {}
![Page 20: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/20.jpg)
Prepared by Dr. Inayatullah Shah 20
ADT Representation in Java
public char Remove (){ }public char GetChar(int i){ }public void MakeEmpty (){ }public int Length (){}
![Page 21: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/21.jpg)
Prepared by Dr. Inayatullah Shah 21
ADT Representation in Java
public void Concatenate (String1 s){ }
public boolean Equal (String1 s){}public void Reverse () {}
![Page 22: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/22.jpg)
Prepared by Dr. Inayatullah Shah 22
ADT Implementation in Java
public class String1 extends Object {private char[] str;private int size;
public String1 () { size = 0; str = new char[80];}public void Append (char c) {
str[size] = c; size++; }
![Page 23: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/23.jpg)
Prepared by Dr. Inayatullah Shah 23
ADT Implementation in Java
public char Remove (){ size--; return(str[size]);}public char GetChar(int i){ return(str[i-1]);}public void MakeEmpty (){ size = 0;}public int Length (){ return(size); }
![Page 24: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/24.jpg)
Prepared by Dr. Inayatullah Shah 24
ADT Implementation in Java
public void Concatenate (String1 s){ char c;
for (int i = 0; i<s.Length(); i++) {c = s.GetChar(i+1);Append(c);
}}
And we do the same thing for all other methods.
![Page 25: Prepared by Dr. Inayatullah Shah1 Data Structures CSC212](https://reader030.vdocuments.us/reader030/viewer/2022032800/56649d4c5503460f94a2a9dd/html5/thumbnails/25.jpg)
Prepared by Dr. Inayatullah Shah 25
ADT Implementation in Java
import java.lang.*;public class Test {
public static void main(String[] args) { String1 s = new String1(); String1 s1 = new String1(); System.out.println("Hello, World"); s.Append('a'); s1.Append('b'); s.Concatenate(s1); System.out.print(s.GetChar(1)); System.out.println(s.GetChar(2)); }