Algo>Abstract data type
-
Upload
ain-ul-moiz-khawaja -
Category
Education
-
view
257 -
download
0
description
Transcript of Algo>Abstract data type
![Page 1: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/1.jpg)
1
Abstract Data Types
![Page 2: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/2.jpg)
2
Abstract Data Types
Abstract Data Type (ADT): a definition for a data type solely in terms of a set of values and a set of operations on that data type.
Each ADT operation is defined by its inputs and outputs.
ENCAPSULATION: Hide Implementation details
![Page 3: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/3.jpg)
3
Def.
e.g. whole numbers (integers) and arithmetic operators for addition, subtraction, multiplication and division.
e.g. Flight reservation Basic operations: find empty seat, reserve a seat,
cancel a seat assignmentWhy "abstract?" Data, operations, and relations are studied
independent of implementation.
What not how is the focus.
a collection of related data items together with an associated set of operations
Abstract Data Types
![Page 4: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/4.jpg)
4
Def.Consists of
storage structures (data structures) to store the data items
andalgorithms for the basic operations.
The storage structures/data structures used in implementations are provided in a language (primitive or built-in) or are built from the language constructs (user-defined).
In either case, successful software design uses data abstraction:
Separating the definition of a data type from its implementation.
Abstract Data Types
![Page 5: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/5.jpg)
5
Data StructureA data structure is the physical implementation of an
ADT.Each operation associated with the ADT is implemented by one or
more subroutines in the implementation.
Data structure usually refers to an organization of data in main memory.
File structure is an organization for data on peripheral storage, such as a disk drive.
![Page 6: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/6.jpg)
6
Data Type
ADT:TypeOperations
Data Items: Logical Form
Data Items: Physical Form
Data Structure:Storage SpaceSubroutines
![Page 7: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/7.jpg)
7
Simple Data Types Memory:
2-state devices bits 0 and 1
Organized into bytes (8 bits) and words (machine dependent — e.g., 2 bytes).
Each byte (or word) has an address making it possible to store and retrieve contents of any given memory location.
Therefore: the most basic form of data: sequences of bits
simple data types (values are atomic — can't be subdivided) are ADTs. Implementations have: » Storage structures: memory locations » Algorithms: system hardware/software to do basic operations.
![Page 8: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/8.jpg)
8
Boolean data
Data values: {false, true}
In C/C++: false = 0, true = 1 (or nonzero)
Operations: and &&or ||not !
x !x0 11 0
&& 0 1
0 0 0
1 0 1
| | 0 1
0 0 1
1 1 1
![Page 9: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/9.jpg)
9
Character DataStore numeric codes (ASCII, EBCDIC, Unicode) 1 byte for ASCII and EBCDIC, 2 bytes for Unicode
Basic operation: comparison to determine if Equal, Less than , Greater than, etc. use their numeric codes (i.e. use ordinal value)
ASCII/EBCDIC
Unicode
![Page 10: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/10.jpg)
10
Integer Data
Non-negative (unsigned) integer:
Store its base-two representation in a fixed number w of bits
(e.g., w = 16 or w = 32)
88 = 00000000010110002
Signed integer: Store in a fixed number w of bits using one of the following
representations:
![Page 11: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/11.jpg)
11
Sign-magnitude representation
Save one bit (usually most significant) for sign
(0 = +, 1 = – )
Use base-two representation in the other bits.
88 _000000001011000
0sign bit
Cumbersome for arithmetic computations
–88 _0000000010110001
![Page 12: Algo>Abstract data type](https://reader033.fdocuments.us/reader033/viewer/2022061212/547af748b4af9fdf208b4743/html5/thumbnails/12.jpg)
12
Two's complement representation
For negative n (–n):(1) Find w-bit base-2 representation of n (2) Complement each bit.(3) Add 1
Example: –881. 88 as a 16-bit base-two number000000000101100
0
Same as sign mag.For nonnegative n:
Use ordinary base-two representation with leading (sign) bit 0
2. Complement this bit string3. Add 1
11111111101001111111111110101000
(Flip all bits from rightmost 0 to the end)