2. What is a data structure?
Data structures are used to store data in a computer in an
organized fashion.
The scheme of organizing related information that
considers not only the items stored, but also their
relationship to each other .
It is a group of data elements grouped together under one
name.
- These data elements are called members. They can have
different types and different lengths.
- Some of them store the data of same type while others
store different types of data.
In programming the term data structure refers to a scheme
for organizing related piece of information.
Data Structure = Organized Data + Allowed Operations.
2
3. Goals of this Course
1. Reinforce the concept that costs and benefits exist
for every data structure.
1. Learn the commonly used data structures.
These form a programmer's basic data structure
``toolkit.'‘
1. Understand how to measure the cost of a data
structure or program.
These techniques also allow you to judge the merits
of new data structures that you or others might
invent.
4. Areas in which data structures are applied
Compiler Design
Operating System
Database Management System
Statistical analysis package
Numerical Analysis
Graphics
Artificial Intelligence
4
5. The Need for Data Structures
Data structures organize data
⇒ more efficient programs.
More powerful computers
⇒ more complex applications.
More complex applications demand more calculations.
Complex computing tasks are unlike our everyday
experience.
6. Organizing Data
Any organization for a collection of
records can be searched, processed
in any order, or modified.
The choice of data structure and
algorithm can make the difference
between a program running in a few
seconds or many days.
7. Efficiency
A solution is said to be efficient if it solves the
problem within its resource constraints.
Space
Time
The cost of a solution is the amount of resources
that the solution consumes.
8. Selecting a Data Structure
Select a data structure as follows:
1. Analyze the problem to determine the basic
operations that must be supported.
2. Quantify the resource constraints for each
operation.
3. Select the data structure that best meets these
requirements.
9. Costs and Benefits
Each data structure has costs and benefits.
Rarely is one data structure better than another in all
situations.
Any data structure requires:
space for each data item it stores,
time to perform each basic operation,
programming effort.
10. Costs and Benefits (cont)
Each problem has constraints on available
space and time.
Only after a careful analysis of problem
characteristics we can know the best data
structure for the task.
Bank example:
Start account: a few minutes
Transactions: a few seconds
Close account: overnight
11. Example 1.2
Problem: Create a database containing information
about cities and towns.
Tasks: Find by name or attribute or location
Exact match, range query, spatial query
Resource requirements: Times can be from a few
seconds for simple queries to a minute or two for
complex queries
12. Abstract Data Types
Abstract Data Type (ADT): defining a data type
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.
13. Data Structure
A 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 for
data in main memory.
File structure: an organization for data on peripheral
storage, such as a disk drive.
14. Metaphors
An ADT manages complexity through abstraction:
metaphor.
Hierarchies of labels
Ex: transistors ⇒ gates ⇒ CPU.
In a program, implement an ADT, then think only about
the ADT, not its implementation.
15. Logical vs. Physical Form
Data items have both a logical and a physical form.
Logical form: definition of the data item within an
ADT.
Ex: Integers in mathematical sense: +, -
Physical form: implementation of the data item within
a data structure.
Ex: 16/32 bit integers, overflow.
17. Define a linear and non linear data
structure
• Linear data structure: A linear data structure
traverses the data elements sequentially
Only one data element can directly be reached.
Ex: Arrays, Linked Lists
• Non-Linear data structure: Every data item is
attached to several other data items in a way that
is specific for reflecting relationships.
• The data items are not arranged in a sequential
structure.
• Ex: Trees, Graphs
17
18. What are the types of data structures?
The types of data structure are:
Arrays: A set of homogeneous values.
Lists: A group of similar items with
connectivity to the previous or/and next data
items.
Matrix: A way to store data in an organized
form in the form of rows and columns.
Linked list: Stored data in a linear fashion.
Stack: Works in first in last out order. The
element inserted first in stack is removed last
18
19. Queues: First in First out order. The element
inserted first is removed first.
Records: A set of fields, where each field consists of
data belongs to one data type.
Trees: A data structure where the data is organized
in a hierarchical structure. This type of data structure
follows the sorted order of insertion, deletion and
modification of data items.
Tables: Data is persisted in the form of rows and
columns. These are similar to records, where the
result or manipulation of data is reflected for the
whole table
19
Notes de l'éditeur
The first goal is a worldview to adopt
The second goal is the “nuts and bolts” of the course.
The third goal prepares a student for the future.
A primary concern for this course is efficiency.
You might believe that faster computers make it unnecessary to be concerned with efficiency. However…
So we need special training.
If you are willing to pay enough in time delay. Example: Simple unordered array of records.
Alternate definition: Better than known alternatives (“relatively efficient”).
Space and time are typical constraints for programs.
This does not mean always strive for the most efficient program. If the program operates well within resource constraints, there is no benefit to making it faster or smaller.
Typically want the “simplest” data structure that will meet the requirements.
The space required includes data and overhead.
Some data structures/algorithms are more complicated than others.
In this class, we frequently move above and below “the line” separating logical and physical forms.