• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
 Data structures (introduction)

Data structures (introduction)






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

     Data structures (introduction) Data structures (introduction) Presentation Transcript

    • Data Structures Arvind Devaraj
    • Data Structure Selection • What data structure will you use in the following Scenarios
    • Ten people are standing in a row. Every third person is eliminated. Which person remains Which Data structure ? Array, List, Tree, Stack, Queue ????? SCENARIO-1
    • SCENARIO 2 Recent 5 missed calls must be displayed Which Data structure ? Array, List, Tree, Stack, Queue ?????
    • SCENARIO 3 • Need to maintain database of student names…support for – Insert, Delete, Search – (also) next and previous person – (also) find who got maximum marks Which Data structure ? Array, List, Tree, Stack, Queue ?????
    • SCENARIO 4 Each person is assigned a priority number when he enters an office. The person who has the highest priority is served Each process is having priority. The OS schedules the one having the highest priority Which Data structure ? Array, List, Tree, Stack, Queue ?????
    • Arrays (vs List) + Fast Access + Memory consumption is minimal - Insertion and deletion is complicated
    • Linked Lists • A way of making variable length arrays – In which insertions and deletions are easy • But nothing comes for free – Finding an element can be slow – Extra space is needed for the links
    • Linked List Example Jill Joe Tom first Public static main (String[] argv) { Student first; … } Public class Student { String name; public Student next; }
    • Trees • Linked list with multiple next elements Binary trees are useful for relationships like “<“ , “>” • Insertions and deletions are easy • Useful for fast searching of large collections
    • Binary Tree Example Jill Joe Tom root Public class Student { int String name; public Student left; public Student right; }
    • Write a program • height of binary tree • Count leaves • Find minimum value • Locate a particular node • Find successor of a node • Check if it’s a Binary Search tree
    • int height( BinaryTree Node t) { if t is a null tree return -1; hl = height( left subtree of t); hr = height( right subtree of t); h = 1 + maximum of hl and hr; return h; }
    • Hashtables • Find an element nearly as fast as in an array – With easy insertion and deletion – But without the ability to keep things in order • Fairly complex to implement – But Java defines a class to make it simple • Helpful to understand how it works – “One size fits all” approaches are inefficient
    • Choosing a Data Structure • What operations do you need to perform? • Hashing finds single elements quickly – But cannot preserve order • Stacks and linked lists preserve order easily – But they can only read one element at any time • Balanced trees are best when you need both – Need to read in blocks (for disks) – B-Tree is used