11
CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone: 664 3335 E-mail: [email protected] Course Web site: http://ravi.cs.sonoma.edu/cs315sp09

CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone: 664 3335

  • Upload
    qiana

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone: 664 3335 E-mail: [email protected] Course Web site: http://ravi.cs.sonoma.edu/cs315sp09. Textbook for the course:. Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss. Class time Lecture: - PowerPoint PPT Presentation

Citation preview

Page 1: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

CS 315 Data Structures

B. Ravikumar Office: 116 I Darwin Hall

Phone: 664 3335E-mail: [email protected]

Course Web site: http://ravi.cs.sonoma.edu/cs315sp09

Page 2: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Textbook for the course:

Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss

Class time

Lecture: T Th 10:45 to 12 noon, Darwin Hall 102

Lab: F 9 to 11:50 AM, Darwin Hall # 25

Page 3: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Data Structures – informal definition

How to store data sets in memory so that the computation(s) can be solved easily, efficiently etc.

Some typical issues:

• preprocessing vs. updating

• trade-offs between operations

• interaction between algorithm and data structure

Page 4: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Course Goals • Learn to use fundamental data structures:

• arrays, linked lists, stacks and queues• hash table• priority queue – binary heap and others• binary trees, binary search trees, AVL trees• quad-trees, skip-lists

• Improve your skill in programming in c++• recursion, classes, algorithm implementation• design solutions using different data structures

Page 5: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Course Goals • Analytical and experimental analysis

• quantitative reasoning about the performance of algorithms (time, storage, network, bandwidth etc.)• comparing different data structures

• Applications• image storage and manipulation• image and data compression• sorting and searching• spelling checking, backtracking• packet routing in a network• geometric problems

Page 6: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Goals for today’s lecture

• Course outline

• Course work• lab assignments• projects• tests, final exam• quiz and class participation (new)

• If any time left, start discussing recursion.

Page 7: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Data Structures – key to software design

• Data structures play a key role in every type of software.

• Data structure deals with how to organize the data in the memory while solving a problem in order to reduce

•overall running time of a program•response time (for queries)•memory requirements

• Cost model for data access - array access, pointers

Page 8: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Abstract Data Structure (ADT), supported operations

•Dictionary•search •insert primary operations•Delete

•deleteMin•Range search•Successor secondary operations•Merge

•Priority queue•Insert•deleteMin •Merge, split etc. Secondary operations

primary operations

Page 9: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Linear data structures

• key properties of the (1-d) array:

• a sequence of items are stored in consecutive memory locations. • array provides a constant time access to k-th element for any k. (access the element by: Element[k].)

Page 10: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Linear data structures

•inserting at the end is easy. if the current size is s, then we can add x at the end using the single instruction: Element[s++] = x;• deleting at the end is also easy.• inserting or deleting at any other position is expensive. • searching for a key is expensive (unless sorted).

• Expensive means the number of operations ~ size of the array.

Page 11: CS 315  Data Structures B. Ravikumar          Office: 116 I Darwin Hall Phone: 664 3335

Images stored in 2-dim arrays We will work on 2-d arrays by manipulating images:

• Each pixel is represented by a blue value, a red value and a green value (any color is a combination of these colors).

(255, 255, 255) represents white, (255, 0, 0) represents red etc.

• pic(i , j)-> Blue represents the blue component of the i-th row, j-th column pixel of pic and so on.

• Some basic operations on images:• open, read, write• rotate, copy a sub-image • filter (remove blemishes)• extract features (identify where buildings are in an

aerial photograph)