0% found this document useful (0 votes)
2 views

Lec2 Introduction_2

This course focuses on organizing information through various data structures to enhance computational efficiency. Key goals include familiarization with fundamental data structures, improving problem-solving skills, and analyzing algorithms for correctness and time complexity. The course emphasizes the importance of data structures in computer science and their applications across multiple domains.

Uploaded by

fastian.0542
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Lec2 Introduction_2

This course focuses on organizing information through various data structures to enhance computational efficiency. Key goals include familiarization with fundamental data structures, improving problem-solving skills, and analyzing algorithms for correctness and time complexity. The course emphasizes the importance of data structures in computer science and their applications across multiple domains.

Uploaded by

fastian.0542
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 9

What is this Course About?

Clever ways to organize information in order to enable


efficient computation

– What do we mean by clever?

– What do we mean by efficient?


Clever? Efficient?

Lists, Stacks, Queues Insert


Heaps
Binary Search Trees Delete
AVL Trees
Find
Hash Tables
Graphs Merge
Disjoint Sets
Shortest Paths
Union
Data Structures Algorithms
Graphics
Theory AI

Operating Systems Database Applications

Used Everywhere!

Mastery of this
material separates
you from:

• Perhaps the most important course in your CS curriculum!


• Guaranteed non-obsolescence!
Specific Goals of the Course
• Become familiar with some of the fundamental data
structures in computer science
• Improve ability to solve problems abstractly
– data structures are the building blocks
• Improve ability to analyze your algorithms
– prove correctness
– gauge (and improve) time complexity
• Become modestly skilled with the UNIX operating system
(you’ll need this in upcoming courses)
C++  Data Structures
• One of the all-time great books in computer science:
• The Art of Computer Programming (1968-1973)
– by Donald Knuth
• Examples in assembly language (and English)!

American Scientist
says: in top 12 books
of the CENTURY!

Very little about C++ in class.


Abstract Data Types

Abstract Data Type


(ADT)
Mathematical description of an
object and the set of operations on
the object
tradeoffs!

Data Types Algorithms


integer, array, binary search,
pointers, … quicksort, …
ADT Presentation Algorithm
• Present an ADT
• Motivate with some applications
• Repeat until it’s time to move on:
– develop a data structure and algorithms for the ADT
– analyze its properties
 efficiency
 correctness
 limitations
 ease of programming
• Contrast strengths and weaknesses
First Example: Queue ADT
• Queue operations
– create
– destroy
– enqueue
– dequeue
– is_empty
• Queue property: if x is enQed before y is enQed, then x will
be deQed before y is deQed
• FIFO: First In First Out

enqueue F E D C B dequeue A
G
Applications of the Q
• Hold jobs for a printer
• Store packets on network routers
• Make waitlists fair
• Breadth first search

You might also like