ADTs,, Arrays, Linked Lists

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "ADTs,, Arrays, Linked Lists"

Transcription

1 1 ADTs,, Arrays, Linked Lists Outline and Required Reading: ADTs ( 2.1.2) Arrays ( 1.5) Linked Lists ( 4.3.1, 4.3.2) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic

2 Abstract Data Type (ADT) 2 abstract implementation details are not specified! Abstract Data Type entity that consists of: 1) data structure (DS) 2) set of operation supported on the DS 3) error conditions ADT Data Structure Interface add() remove() find() request result Basic Data Structures array (used in advanced ADT) linked list

3 Abstract Data Type (ADT) (cont.) 3 Data Structure Interface add() remove() find() request result Designer s responsibility: choice of data structure implementation of operations User s requirements: correct performance efficient performance The interior mechanisms of an implemented ADT should be hidden and inaccessible to the user! (Remember encapsulation, i.e. information hiding, OO-programming principle!)

4 Abstract Data Type (ADT) (cont.) 4 Standard ADTs Stacks, Queues, Vectors, Lists, Trees, Why should we know standard ADTs? standard ADTs are great reusable components - can be effectively used in solving many real world problems we may be required to adapt algorithms which use some of the standard ADTs What should we know about standard ADTs? (1) what operations they support (2) complexity of supported operations (3) memory cost of operations

5 ADT Taxonomy 5 Linear ADTs - we call an ADT linear, if the following is true: (1) there is a unique first element (2) there is a unique last element (3) every element has a unique predecessor (except 1 st ) (4) every element has a unique successor (except last) A1 A2 Non-linear ADTs - if one or more of the above is not true, the ADT is non-linear A1 A2 A3 A1

6 Abstract Data Type (ADT) (cont.) 6 Example 1 [ selecting an ADT ] (a) If organizing a tour route, where we have to add/delete a city - use Linked List. (c) If managing a telephone directory that should provide short search times - use Sorted Tree.

7 Array 7 Array sequence of indexed components, with the following general properties: array size is fixed at the time of array s construction int numbers = new numbers [10]; any array component can be efficiently inspected or updated using its index, in O(1) time randomnumber = numbers[5]; numbers[2] = 100; Index = Element at position 5 Array of length 8 Major Limitation size fixed, and must be known in advance

8 Properties of Java Arrays 8 (1) for an array of length n, the index bounds are 0 and (n-1) (2) array elements are stored in side by side memory locations (3) every array is homogeneous - all its components must be of the same type (4) an array is itself an object it is allocated dynamically by means of new it is automatically deallocated when no longer referred to

9 Linked List 9 Linked List sequence of nodes arranged one after another, with each node connected to the next by a link (like a chain) each node is an object containing: 1) a single element - stored object or value 2) links - reference to one or both neighbouring nodes each node (except the last one) has a successor, and each node (except the first one) has a predecessor node A1 head node A2 An tail node element link NOTE: neighbouring nodes can be far away physically!

10 Properties of Linked Lists 10 (1) linked list can be of any length, i.e. it can contain any number of elements, and it can grow (2) the element in any node can be accessed, however we must hold a link to that node (3) nodes can be inserted and deleted ordering of nodes can be changed in minimal running time (4) there are two different types of linked lists Singly Linked List (each node is linked to one of its neighbours) Doubly Linked List (each node is linked to both of its neighbours)

11 Object Reference 11 Reference Variable contains the location (address) of an object when we declare a reference variable, it does not reference anything, i.e. it is initialized to null if we attempt to use a reference variable before initiating an object for it, NullPointerException will be thrown Integer intref; intref = new Integer(5); Reference intref Reference intref null 5 Integer Object

12 Object Reference (cont.) 12 Declaring Reference Variables Integer p, q; p q Allocating an Object p = new Integer(5); p 5 Allocating Another Object p = new Integer(6); 5 p marked for garbage collection 6 Assigning a Reference q = p; p q 6

13 Object Reference (cont.) 13 Allocating an Object q = new Integer(9); p q 6 9 Assigning null to a Reference Variable p = null; p q marked for garbage collection 6 9 Assigning a Reference with a null Value q = p; p q null 9 marked for garbage collection

14 Singly Linked List 14 Singly Linked List each node contains a data-element together with a link to its successor A1 head node A2 An tail node SLLNode public class SLLNode { Object element; SLLNode next; public SLLNode(Object elem, SLLNode succ) { } this.element = elem; this.next = succ; } Reference variables!

15 Singly Linked List (cont.) 15 SLLNode Complying with Requirements hidden and inaccessible public class SLLNode { private Object element; private SLLNode next; public SLLNode(Object elem, SLLNode succ) { this.element = elem; this.next = succ; } public Object getelement() { return element; } public SLLNode getnext() { return next; } public void setelement(object newelement){ element = newelement; } public void setnext(sllnode newnext){ next = newnext; } }

16 Singly Linked List (cont.) 16 Creating and Linking Two SLLNodes SLLNode n = new SLLNode(new Integer(5), null); n 5 SLLNode first = new SLLNode(NewInteger(9), n) n first 5 9 SLLNode n = new SLLNode(NewInteger(9), n) n 5 9 Should, in the 2 nd case, the first node be collected by the garbage collection!?

17 Singly Linked List (cont.) 17 SLL A1 A2 An-1 An head tail public class SLL { private SLLNode head; private SLLNode tail; public SLL() { this.head = null; this.tail = null; } Constructs an empty linked list! It is a good practice to maintain direct references to head and tail; with them: 1) easy to delete or insert new node at the front of SLL; 2) easy to insert new node at the rear. But, it is still costly to delete the end node. Why?!

18 Singly Linked List (cont.) 18 Adding New Node at the Rear of SLL with Reference to Head Only! A1 A2 An head curr public class SLL { } private SLLNode head;... public void addlast(sllnode newnode){ SLLNode curr; if (head==null) head=newnode; else { } for (curr = head; curr.getnext()!= null; curr=curr.getnext()){ }; curr.setnext=newnode; }

19 Singly Linked List (cont) 19 Example 1 [ SLL traversal ] public void traversesll() { for (SLLNode curr = head; curr!= null; curr = curr.getnext()) { System.out.print(curr.element + ); } } Example 2 [ deletion of 1 st SLL node ] public void deletefirst() {... head = head.next; } A1 A2 head

20 Singly Linked List (cont) 20 Example 3 [ deletion of 1 st SLL node, with memory management ] public void deletefirst() {... } curr = head; head = head.next; curr.setnext(null); curr = null; A1 A2 marked for garbage collection head

21 Singly Linked List (cont) 21 Example 4 [ deletion of SLL node after node referenced by prev ] public void delete(sllnode prev) {... } SLLNode curr = prev.getnext(); prev.setnext(curr.getnext()); curr.setnext(null); curr = null; A1 Ak Ak+1 head prev marked for garbage collection Ak+2

22 Singly Linked List (cont) 22 Example 5 [ insertion of SLL node after node referenced by prev ] public void insert(object element) {... } SLLNode curr = prev.getnext(); SLLNode newnode = new SLLNode(element, curr); prev.setnext(newnode); Ak+1 A1 Ak Ak+1 head prev

23 Doubly Linked List 23 Doubly Linked List each node contains an element together with a link to its predecessor and a link to its successor A1 A2 An DLLNode public class DLLNode { private Object element; private DLLNode prev, next; public DLLNode(Object elem, SLLNode pred, DLLNode succ) { this.element = elem; this.prev = pred; this.next = succ; } }

24 Arrays vs. Single- and Double- Linked Lists 24 Guidelines for Choosing Between an Array and a Linked List ADT Requirement frequent random access operations add/remove at a cursor add/remove at a two-way cursor frequent capacity changes Suggested Implementation Use an array. Use a singly linked list. Use a doubly linked list. Use a linked list.

25 Questions 25 Q.1 Suppose, in your program, you have been using a collection of numbers, which has been stored in an array of size 1000, named intcollection. (int intcollection = new int[1000];) However, you do not need this collection any longer, and you want to free the memory. What should you do? Q.2 Examine the following code, and determine how the corresponding SLL (the sequence of SLL s elements) looks like. SLLNode c = new SLLNode( not to be, null); SLL phrase = SLL(); phrase.head = new SLLNode( to be, new SLLNode( or, c) ); Q.3 Repeat Examples 1 to 5 for Doubly Linked List. Q.4 Write a short program that swaps the 1 st and 2 nd node of a) a singly linked list (SLL) b) a doubly linked list (DLL)

Anatomy of a linked list

Anatomy of a linked list Linked Lists Anatomy of a linked list A linked list consists of: A sequence of nodes mylist a b c d Each node contains a value and a link (pointer or reference) to some other node The last node contains

More information

Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types

Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types EECS 281: Data Structures and Algorithms The Foundation: Data Structures and Abstract Data Types Computer science is the science of abstraction. Abstract Data Type Abstraction of a data structure on that

More information

DATA STRUCTURES USING C

DATA STRUCTURES USING C DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give

More information

Queues Outline and Required Reading: Queues ( 4.2 except 4.2.4) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic

Queues Outline and Required Reading: Queues ( 4.2 except 4.2.4) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic Queues Outline and Required Reading: Queues ( 4. except 4..4) COSC, Fall 3, Section A Instructor: N. Vlajic Queue ADT Queue linear data structure organized according to first-in/first-out (FIFO) principle!

More information

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number

More information

Chapter 4: Linked Lists

Chapter 4: Linked Lists Chapter 4: Linked Lists Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Preliminaries Options for implementing an ADT List Array has a fixed size Data must be shifted during

More information

Data Structure. Lecture 3

Data Structure. Lecture 3 Data Structure Lecture 3 Data Structure Formally define Data structure as: DS describes not only set of objects but the ways they are related, the set of operations which may be applied to the elements

More information

Lecture 12 Doubly Linked Lists (with Recursion)

Lecture 12 Doubly Linked Lists (with Recursion) Lecture 12 Doubly Linked Lists (with Recursion) In this lecture Introduction to Doubly linked lists What is recursion? Designing a node of a DLL Recursion and Linked Lists o Finding a node in a LL (recursively)

More information

Lecture 6b Linked List Variations. Similar but not the same

Lecture 6b Linked List Variations. Similar but not the same Lecture 6b Linked List Variations Similar but not the same Linked List Variations: Overview The linked list implementation used in List ADT is known as Singly (Single) Linked List Each node has one pointer

More information

10CS35: Data Structures Using C

10CS35: Data Structures Using C CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a

More information

Data Structures Using C++ 2E. Chapter 5 Linked Lists

Data Structures Using C++ 2E. Chapter 5 Linked Lists Data Structures Using C++ 2E Chapter 5 Linked Lists Test #1 Next Thursday During Class Cover through (near?) end of Chapter 5 Objectives Learn about linked lists Become aware of the basic properties of

More information

STACKS,QUEUES, AND LINKED LISTS

STACKS,QUEUES, AND LINKED LISTS STACKS,QUEUES, AND LINKED LISTS Stacks Queues Linked Lists Double-Ended Queues Case Study: A Stock Analysis Applet 1 Stacks Astack is a container of objects that are inserted and removed according to the

More information

Standard Version of Starting Out with C++, 4th Edition. Linked Lists. Copyright 2003 Scott/Jones Publishing

Standard Version of Starting Out with C++, 4th Edition. Linked Lists. Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Linked Lists Copyright 2003 Scott/Jones Publishing Topics Introduction to the Linked List ADT Linked List Operations A Linked List Template Variations

More information

PES Institute of Technology-BSC QUESTION BANK

PES Institute of Technology-BSC QUESTION BANK PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions

More information

Data Structures. Topic #4

Data Structures. Topic #4 Topic #4 Today s Agenda Stack and Queue ADTs What are they Like Ordered Lists, are position oriented Use of Data Structures for Stacks and Queues arrays (statically & dynamically allocated) linear linked

More information

Overview of Data Structures

Overview of Data Structures UNIT 3 Concrete Data Types Classification of Data Structures Concrete vs. Abstract Data Structures Most Important Concrete Data Structures Arrays Records Linked Lists Binary Trees Overview of Data Structures

More information

LINKED DATA STRUCTURES

LINKED DATA STRUCTURES LINKED DATA STRUCTURES 1 Linked Lists A linked list is a structure in which objects refer to the same kind of object, and where: the objects, called nodes, are linked in a linear sequence. we keep a reference

More information

C++ How to Program, 8/e by Pearson Education, Inc. All Rights Reserved.

C++ How to Program, 8/e by Pearson Education, Inc. All Rights Reserved. C++ How to Program, 8/e 1992-2012 by Pearson Education, Inc. 1992-2012 by Pearson Education, Inc. 1992-2012 by Pearson Education, Inc. We ve studied fixed-size data structures such as one-dimensional arrays

More information

BM267 - Introduction to Data Structures

BM267 - Introduction to Data Structures BM267 - Introduction to Data Structures 3. Elementary Data Structures Ankara University Computer Engineering Department BLM267 1 Objectives Learn about elementary data structures - Data structures that

More information

UNIVERSITI MALAYSIA SARAWAK KOTA SAMARAHAN SARAWAK PSD2023 ALGORITHM & DATA STRUCTURE

UNIVERSITI MALAYSIA SARAWAK KOTA SAMARAHAN SARAWAK PSD2023 ALGORITHM & DATA STRUCTURE STUDENT IDENTIFICATION NO UNIVERSITI MALAYSIA SARAWAK 94300 KOTA SAMARAHAN SARAWAK FAKULTI SAINS KOMPUTER & TEKNOLOGI MAKLUMAT (Faculty of Computer Science & Information Technology) Diploma in Multimedia

More information

Data Structure [Question Bank]

Data Structure [Question Bank] Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:

More information

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The

More information

Analysis of a Search Algorithm

Analysis of a Search Algorithm CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,

More information

International Journal Of Engineering Research & Management Technology

International Journal Of Engineering Research & Management Technology International Journal Of Engineering Research & Management Technology ISSN: 2348-4039 September- 2014 Volume 1, Issue-5 Dynamic Implementation Using Linked List Karuna Department of Information and Technology

More information

csci 210: Data Structures Linked lists

csci 210: Data Structures Linked lists csci 210: Data Structures Linked lists Summary Today linked lists single-linked lists double-linked lists circular lists READING: GT textbook chapter 3 Arrays vs. Linked Lists We ve seen arrays: int[]

More information

CS0213 DATA STRUCTURES AND ALGORITHM LAB USING C & C++ LABORATORY MANUAL II - CSE III - SEMESTER ACADEMIC YEAR:

CS0213 DATA STRUCTURES AND ALGORITHM LAB USING C & C++ LABORATORY MANUAL II - CSE III - SEMESTER ACADEMIC YEAR: CS0213 DATA STRUCTURES AND ALGORITHM LAB USING C & C++ LABORATORY MANUAL II - CSE III - SEMESTER ACADEMIC YEAR: 2012-2013 SCHOOL OF COMPUTER SCIENCE & ENGINEERING SRM UNIVERSITY, SRM NAGAR, KATTANKULATHUR-603203.

More information

Data Structures and Algorithms Lists

Data Structures and Algorithms Lists Data Structures and Algorithms Lists Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/19 5-0: Abstract Data Types An

More information

Chapter 3. Linked Lists. Data Structures and Algorithms in Java

Chapter 3. Linked Lists. Data Structures and Algorithms in Java Chapter 3 Linked Lists Data Structures and Algorithms in Java Objectives Discuss the following topics: Singly Linked Lists Doubly Linked Lists Circular Lists Skip Lists Self-Organizing Lists Sparse Tables

More information

Arrays and Linked Lists

Arrays and Linked Lists Arrays and Linked Lists Data Structures and Algorithms Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++ Goodrich, Tamassia and Mount (Wiley, 2004)

More information

What is a Stack? Stacks and Queues. Stack Abstract Data Type. Java Interface for Stack ADT. Array-based Implementation

What is a Stack? Stacks and Queues. Stack Abstract Data Type. Java Interface for Stack ADT. Array-based Implementation Stacks and Queues What is a Stack? Stores a set of elements in a particular order Accessed in Last-In In-First-Out (LIFO) fashion Real life examples: Pile of books PEZ dispenser Cup trays in cafeteria

More information

Sequential Data Structures

Sequential Data Structures Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year

More information

Questions 1 through 25 are worth 2 points each. Choose one best answer for each.

Questions 1 through 25 are worth 2 points each. Choose one best answer for each. Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in

More information

Node-Based Structures Linked Lists: Implementation

Node-Based Structures Linked Lists: Implementation Linked Lists: Implementation CS 311 Data Structures and Algorithms Lecture Slides Monday, March 30, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org

More information

Chapter 3: Restricted Structures Page 1

Chapter 3: Restricted Structures Page 1 Chapter 3: Restricted Structures Page 1 1 2 3 4 5 6 7 8 9 10 Restricted Structures Chapter 3 Overview Of Restricted Structures The two most commonly used restricted structures are Stack and Queue Both

More information

2. Names, Scopes, and Bindings

2. Names, Scopes, and Bindings 2. Names, Scopes, and Bindings Binding, Lifetime, Static Scope, Encapsulation and Modules, Dynamic Scope Copyright 2010 by John S. Mallozzi Names Variables Bindings Binding time Language design issues

More information

Common Data Structures

Common Data Structures Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees

More information

Linked List as an ADT (cont d.)

Linked List as an ADT (cont d.) Linked List as an ADT (cont d.) Default constructor Initializes list to an empty state Destroy the list Deallocates memory occupied by each node Initialize the list Reinitializes list to an empty state

More information

Algorithms and Data Structures

Algorithms and Data Structures Basic Data Structures Page 1 BFH-TI: Softwareschule Schweiz Basic Data Structures Dr. CAS SD01 Basic Data Structures Page 2 Outline Data Structures and Abstract Data Types Linear Data Structures Implementing

More information

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse

More information

D06 PROGRAMMING with JAVA

D06 PROGRAMMING with JAVA Cicles Formatius de Grau Superior Desenvolupament d Aplicacions Informàtiques D06 PROGRAMMING with JAVA Ch20 Data Structures I PowerPoint presentation, created by Angel A. Juan - ajuanp(@)gmail.com, for

More information

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate

More information

Multi-Way Search Trees (B Trees)

Multi-Way Search Trees (B Trees) Multi-Way Search Trees (B Trees) Multiway Search Trees An m-way search tree is a tree in which, for some integer m called the order of the tree, each node has at most m children. If n

More information

7.1 Our Current Model

7.1 Our Current Model Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.

More information

Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1

Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1 Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions

More information

Data Structures and Algorithms Binary Search Trees

Data Structures and Algorithms Binary Search Trees Data Structures and Algorithms Binary Search Trees Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/34 To find the

More information

Symbol Tables. IE 496 Lecture 13

Symbol Tables. IE 496 Lecture 13 Symbol Tables IE 496 Lecture 13 Reading for This Lecture Horowitz and Sahni, Chapter 2 Symbol Tables and Dictionaries A symbol table is a data structure for storing a list of items, each with a key and

More information

System Software Prof. Dr. H. Mössenböck

System Software Prof. Dr. H. Mössenböck System Software Prof. Dr. H. Mössenböck 1. Memory Management 2. Garbage Collection 3. Linkers and Loaders 4. Debuggers 5. Text Editors Marks obtained by end-term exam http://ssw.jku.at/misc/ssw/ 1. Memory

More information

TIE-20106 1 TIE-20106 2

TIE-20106 1 TIE-20106 2 TIE-20106 1 1 List structures In this chapter, a few simple data structures (stack and queue) that can be implemented with arrays and/or lists are covered. Two more complex structures based on lists are

More information

Sequences in the C++ STL

Sequences in the C++ STL CS 311 Data Structures and Algorithms Lecture Slides Wednesday, November 4, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn

More information

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester

More information

Definition. E.g. : Attempting to represent a transport link data with a tree structure:

Definition. E.g. : Attempting to represent a transport link data with a tree structure: The ADT Graph Recall the ADT binary tree: a tree structure used mainly to represent 1 to 2 relations, i.e. each item has at most two immediate successors. Limitations of tree structures: an item in a tree

More information

Data Structures. Level 6 C30151. www.fetac.ie. Module Descriptor

Data Structures. Level 6 C30151. www.fetac.ie. Module Descriptor The Further Education and Training Awards Council (FETAC) was set up as a statutory body on 11 June 2001 by the Minister for Education and Science. Under the Qualifications (Education & Training) Act,

More information

Chapter 14 The Binary Search Tree

Chapter 14 The Binary Search Tree Chapter 14 The Binary Search Tree In Chapter 5 we discussed the binary search algorithm, which depends on a sorted vector. Although the binary search, being in O(lg(n)), is very efficient, inserting a

More information

Chapter 8: Bags and Sets

Chapter 8: Bags and Sets Chapter 8: Bags and Sets In the stack and the queue abstractions, the order that elements are placed into the container is important, because the order elements are removed is related to the order in which

More information

CSCI Trees. Mark Redekopp David Kempe

CSCI Trees. Mark Redekopp David Kempe 1 CSCI 104 2-3 Trees Mark Redekopp David Kempe 2 Properties, Insertion and Removal BINARY SEARCH TREES 3 Binary Search Tree Binary search tree = binary tree where all nodes meet the property that: All

More information

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 02 Lecture No. # 05 Run-time Environments-Part 3 and Local Optimizations

More information

Summary. Pre requisition. Content Details: 1. Basics in C++

Summary. Pre requisition. Content Details: 1. Basics in C++ Summary C++ Language is one of the approaches to provide object-oriented functionality with C like syntax. C++ adds greater typing strength, scoping and other tools useful in object-oriented programming

More information

Data Structures Using C++ 2E. Chapter 5 Linked Lists

Data Structures Using C++ 2E. Chapter 5 Linked Lists Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given

More information

Memory Management. Memory Areas and their use. Memory Manager Tasks: Free List Implementations. acquire release

Memory Management. Memory Areas and their use. Memory Manager Tasks: Free List Implementations. acquire release Memory Management Memory Areas and their use Memory Manager Tasks: acquire release Free List Implementations Singly Linked List Doubly Linked List Buddy Systems Memory Management Memory areas: In languages

More information

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. 1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. base address 2. The memory address of fifth element of an array can be calculated

More information

12 Abstract Data Types

12 Abstract Data Types 12 Abstract Data Types 12.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT).

More information

Linked Lists: Implementation Sequences in the C++ STL

Linked Lists: Implementation Sequences in the C++ STL Linked Lists: Implementation Sequences in the C++ STL continued CS 311 Data Structures and Algorithms Lecture Slides Wednesday, April 1, 2009 Glenn G. Chappell Department of Computer Science University

More information

Linked Lists, Stacks, Queues, Deques. It s time for a chainge!

Linked Lists, Stacks, Queues, Deques. It s time for a chainge! Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

Objective Specification, design and implementation of an ADT in C/C++. Using generic elements and iterators.

Objective Specification, design and implementation of an ADT in C/C++. Using generic elements and iterators. ADTs containers of generic elements and iterators Objective Specification, design and implementation of an ADT in C/C++. Using generic elements and iterators. Theoretical aspects Representation of an ADT

More information

CmpSci 187: Programming with Data Structures Spring 2015

CmpSci 187: Programming with Data Structures Spring 2015 CmpSci 187: Programming with Data Structures Spring 2015 Lecture #12 John Ridgway March 10, 2015 1 Implementations of Queues 1.1 Linked Queues A Linked Queue Implementing a queue with a linked list is

More information

Data Structures and Data Manipulation

Data Structures and Data Manipulation Data Structures and Data Manipulation What the Specification Says: Explain how static data structures may be used to implement dynamic data structures; Describe algorithms for the insertion, retrieval

More information

Collections & Data Structures. CS 3: Computer Programming in Java

Collections & Data Structures. CS 3: Computer Programming in Java Collections & Data Structures CS 3: Computer Programming in Java Objectives The concept of a collection Separating the interface from the implementation Dynamic data structures Linked lists Queues and

More information

Pallab Dasgupta. Linked Lists CS10001: Programming & Data Structures. Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur

Pallab Dasgupta. Linked Lists CS10001: Programming & Data Structures. Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Linked Lists CS10001: Programming & Data Structures Pallab Dasgupta Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Arrays: pluses and minuses + Fast element access. -- Impossible

More information

Data Types. Abstract Data Types. ADTs as Design Tool. Abstract Data Types. Integer ADT. Principle of Abstraction

Data Types. Abstract Data Types. ADTs as Design Tool. Abstract Data Types. Integer ADT. Principle of Abstraction bstract ata Types Previous lectures: algorithms and their efficiency analysis. oming lectures: data structures In this lecture: bstract data types Ts as a design tool Examples: integer T, List T ata Types

More information

Linked Lists introduction. Characteristics of Linked Lists. Programming Linked Lists

Linked Lists introduction. Characteristics of Linked Lists. Programming Linked Lists To extend understanding of pointers by using them to create dynamic data structures Understand when to use a Linked List Be able to create a Linked List in C understand internals be able to program them!

More information

Course: Programming II - Abstract Data Types. The ADT Queue. (Bobby, Joe, Sue, Ellen) Add(Ellen) Delete( ) The ADT Queues Slide Number 1

Course: Programming II - Abstract Data Types. The ADT Queue. (Bobby, Joe, Sue, Ellen) Add(Ellen) Delete( ) The ADT Queues Slide Number 1 Definition Course: Programming II - Abstract Data Types The ADT Queue The ADT Queue is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit addition

More information

CS 111 Classes I 1. Software Organization View to this point:

CS 111 Classes I 1. Software Organization View to this point: CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects

More information

22c:31 Algorithms. Ch3: Data Structures. Hantao Zhang Computer Science Department http://www.cs.uiowa.edu/~hzhang/c31/

22c:31 Algorithms. Ch3: Data Structures. Hantao Zhang Computer Science Department http://www.cs.uiowa.edu/~hzhang/c31/ 22c:31 Algorithms Ch3: Data Structures Hantao Zhang Computer Science Department http://www.cs.uiowa.edu/~hzhang/c31/ Linear Data Structures Now we can now explore some convenient techniques for organizing

More information

Multiway Search Tree (MST)

Multiway Search Tree (MST) Multiway Search Tree (MST) Generalization of BSTs Suitable for disk MST of order n: Each node has n or fewer sub-trees S1 S2. Sm, m n Each node has n-1 or fewer keys K1 Κ2 Κm-1 : m-1 keys in ascending

More information

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A

More information

Ordered Lists and Binary Trees

Ordered Lists and Binary Trees Data Structures and Algorithms Ordered Lists and Binary Trees Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/62 6-0:

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2

More information

Industrial Programming

Industrial Programming Industrial Programming Systems Programming & Scripting Lecture 11: Systems Programming in C# Industrial Programming 1 Characteristics of System Programming in C# Build algorithms and data structures from

More information

Lecture 4. The Java Collections Framework

Lecture 4. The Java Collections Framework Lecture 4. The Java s Framework Chapters 6.3-6.4-1 - Outline Introduction to the Java s Framework Iterators Interfaces Classes Classes - 2 - The Java s Framework We will consider the Java s Framework as

More information

NIKLAUS WIRTH Algorithms + Data Structures = Programs

NIKLAUS WIRTH Algorithms + Data Structures = Programs java04.frm Page 171 Saturday, August 26, 2000 6:03 PM 171 Linked Lists The simplest way to interrelate or link a set of elements is to line them up in a single list... For, in this case, only a single

More information

University of Illinois at Urbana-Champaign Department of Computer Science. First Examination

University of Illinois at Urbana-Champaign Department of Computer Science. First Examination University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Fall 2007 7p-9p, Thursday, October 4 Name: NetID: Lab Section

More information

Heap. Binary Search Tree. Heaps VS BSTs. < el el. Difference between a heap and a BST:

Heap. Binary Search Tree. Heaps VS BSTs. < el el. Difference between a heap and a BST: Heaps VS BSTs Difference between a heap and a BST: Heap el Binary Search Tree el el el < el el Perfectly balanced at all times Immediate access to maximal element Easy to code Does not provide efficient

More information

Data Structures and Algorithms(3)

Data Structures and Algorithms(3) Ming Zhang Data Structures and Algorithms Data Structures and Algorithms(3) Instructor: Ming Zhang Textbook Authors: Ming Zhang, Tengjiao Wang and Haiyan Zhao Higher Education Press, 2008.6 (the "Eleventh

More information

C++ Introduction to class and data abstraction

C++ Introduction to class and data abstraction C++ Introduction to class and data abstraction 1 Data abstraction A data abstraction is a simplified view of an object by specifying what can be done with the object while hiding unnecessary details In

More information

Binary Heap Algorithms

Binary Heap Algorithms CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009 Glenn G. Chappell

More information

Data structures are ways to organize data (information).

Data structures are ways to organize data (information). CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 1 ] What are Data Structures? Data structures are ways to organize data (information). Examples: simple variables primitive types objects

More information

Lecture P8: Pointers and Linked Lists

Lecture P8: Pointers and Linked Lists Lecture P8: Pointers and Linked Lists J Q 5 NULL Pointer Overview Basic computer memory abstraction. Indexed sequence of bits. Address = index. Pointer = VARIABLE that stores memory address. Uses. Allow

More information

ECE 250 Data Structures and Algorithms MIDTERM EXAMINATION 2008-10-23/5:15-6:45 REC-200, EVI-350, RCH-106, HH-139

ECE 250 Data Structures and Algorithms MIDTERM EXAMINATION 2008-10-23/5:15-6:45 REC-200, EVI-350, RCH-106, HH-139 ECE 250 Data Structures and Algorithms MIDTERM EXAMINATION 2008-10-23/5:15-6:45 REC-200, EVI-350, RCH-106, HH-139 Instructions: No aides. Turn off all electronic media and store them under your desk. If

More information

Inheritance and Virtual Functions. Linked lists.

Inheritance and Virtual Functions. Linked lists. Inheritance and Virtual Functions. Linked lists. 26th CS427 Lecture 12.2, 11am, 22nd March 2012 CS427 Inheritance and Virtual Functions. Linked lists. 1/27 In today s class 1 Recall... Inheritance 2 Replacing

More information

Linked Lists Ch 17 (Gaddis) Introduction to Linked Lists. Introduction to Linked Lists. Node Organization

Linked Lists Ch 17 (Gaddis) Introduction to Linked Lists. Introduction to Linked Lists. Node Organization Linked Lists Ch 17 (Gaddis) Introduction to Linked Lists A data structure representing a A series of nodes chained together in sequence CS 3358 Summer I 2012 Jill Seaman - Each node points to one other

More information

CHAPTER 4 ESSENTIAL DATA STRUCTRURES

CHAPTER 4 ESSENTIAL DATA STRUCTRURES CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex

More information

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes. 1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The

More information

Binary Search Trees. Outline and Required Reading: The Dictionary ADT ( 8.1) Binary Search Trees ( 9.1)

Binary Search Trees. Outline and Required Reading: The Dictionary ADT ( 8.1) Binary Search Trees ( 9.1) 1 Binary Search Trees Outline and Required Reading: The Dictionary ADT ( 8.1) Binary Search Trees ( 9.1) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic Dictionary ADT 2 Dictionary searchable collection

More information

Data Structures Using Java

Data Structures Using Java Data Structures Using Java D. S. Malik P. S. Nair THOMSON COURSE TECHNOLOGY Australia Canada Mexico Singapore Spain United Kingdom United States TABLE OF Contents PREFACE XXV 1.Software Engineering Principles

More information

Keys and records. Binary Search Trees. Data structures for storing data. Example. Motivation. Binary Search Trees

Keys and records. Binary Search Trees. Data structures for storing data. Example. Motivation. Binary Search Trees Binary Search Trees Last lecture: Tree terminology Kinds of binary trees Size and depth of trees This time: binary search tree ADT Java implementation Keys and records So far most examples assumed that

More information

This lecture. Abstract data types Stacks Queues. ADTs, Stacks, Queues 1. 2004 Goodrich, Tamassia

This lecture. Abstract data types Stacks Queues. ADTs, Stacks, Queues 1. 2004 Goodrich, Tamassia This lecture Abstract data types Stacks Queues ADTs, Stacks, Queues 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations

More information

Stacks, Queues & Trees. The Stack Interface. The Stack Interface. Prof. Dr. Harald Gall. Institut für Informatik Universität Zürich

Stacks, Queues & Trees. The Stack Interface. The Stack Interface. Prof. Dr. Harald Gall. Institut für Informatik Universität Zürich Stacks, Queues & Trees Prof. Dr. Harald Gall Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch The Stack Interface!! Stack!! Data structure holding several items.!! New items added to the

More information

Two Parts. Filesystem Interface. Filesystem design. Interface the user sees. Implementing the interface

Two Parts. Filesystem Interface. Filesystem design. Interface the user sees. Implementing the interface File Management Two Parts Filesystem Interface Interface the user sees Organization of the files as seen by the user Operations defined on files Properties that can be read/modified Filesystem design Implementing

More information

Unordered Linked Lists

Unordered Linked Lists Unordered Linked Lists Derive class unorderedlinkedlist from the abstract class linkedlisttype Implement the operations search, insertfirst, insertlast, deletenode See code on page 292 Defines an unordered

More information