1 / 11

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 3335 E-mail: ravi93@gmail.edu 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:

qiana
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 315 Data Structures B. Ravikumar Office: 116 I Darwin Hall Phone: 664 3335 E-mail: ravi93@gmail.edu Course Web site: http://ravi.cs.sonoma.edu/cs315sp09

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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.

  7. 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

  8. 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

  9. 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].)

  10. 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.

  11. 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)

More Related