UNIT 6A Organizing Data: Lists Principles of Computing, Carnegie Mellon University
|
|
- Brice Tyler
- 6 years ago
- Views:
Transcription
1 UNIT 6A Organizing Data: Lists Carnegie Mellon University 1
2 Data Structure The organization of data is a very important issue for computation. A data structure is a way of storing data in a computer so that it can be used efficiently. Choosing the right data structure will allow us to develop certain algorithms for that data that are more efficient. An array (or list) is a very simple data structure for holding a sequence of data. 2
3 Arrays in Memory Typically, array elements are stored in adjacent memory cells. The subscript (or index) is used to calculate an offset to find the desired element. Example: data = [50, 42, 85, 71, 99] Assume integers are stored using 4 bytes (32 bits). If we want data[3], the computer takes the address of the start of the array and adds the offset * the size of an array element to find the element we want. Do you see why the first index of an array is 0 now? Address Contents Location of data[3] is *4 = 112 3
4 Arrays: Pros and Cons Pros: Access to an array element is fast since we can compute its location quickly. Cons: If we want to insert or delete an element, we have to shift subsequent elements which slows our computation down. We need a large enough block of memory to hold our array. 4
5 Linked Lists Another data structure that stores a sequence of data values is the linked list. Data values in a linked list do not have to be stored in adjacent memory cells. To accommodate this feature, each data value has an additional pointer that indicates where the next data value is in computer memory. In order to use the linked list, we only need to know where the first data value is stored. 5
6 Linked List Example Linked list to store the sequence: 50, 42, 85, 71, 99 Assume each integer and pointer requires 4 bytes. Starting Location of List (head) 124 address data next (null)
7 Linked List Example To insert a new element, we only need to change a few pointers. Example: Insert 20 after 42. Starting Location of List (head) 124 address data next (null)
8 Drawing Linked Lists Abstractly L = [50, 42, 85, 71, 99] head null Inserting 20 after 42: head step 2 20 step 1 We link the new node to the list before breaking the existing link null 8
9 Linked Lists: Pros and Cons Pros: Inserting and deleting data does not require us to move/shift subsequent data elements. Cons: If we want to access a specific element, we need to traverse the list from the head of the list to find it which can take longer than an array access. Linked lists require more memory. (Why?) 9
10 Two-dimensional arrays Some data can be organized efficiently in a table (also called a matrix or 2-dimensional array) Each cell is denoted with two subscripts, a row and column indicator B[2][3] = 50 B
11 2D Arrays in Ruby data = [ [ 1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ] data[0] => [1, 2, 3, 4] data[1][2] => 7 data[2][5] => nil data[4][2] => undefined method '[]' for nil 11
12 2D Array Example in Ruby Find the sum of all elements in a 2D array def summatrix(table) end sum = 0 for row in 0..table.length-1 do end for col in 0..table[row].length-1 do end return sum number of rows in the table sum = sum + table[row][col] number of columns in the given row of the table 12
13 Tracing the Nested Loop for row in 0..table.length-1 do for col in 0..table[row].length-1 do sum = sum + table[row][col] end end table.length = 3 table[row].length = 4 for every row row col sum
14 Stacks A stack is a data structure that works on the principle of Last In First Out (LIFO). LIFO: The last item put on the stack is the first item that can be taken off. Common stack operations: Push put a new element on to the top of the stack Pop remove the top element from the top of the stack Applications: calculators, compilers, programming 14
15 RPN Some modern calculators use Reverse Polish Notation (RPN) Developed in 1920 by Jan Lukasiewicz Computation of mathematical formulas can be done without using any parentheses Example: ( ) * 5 = becomes in RPN: * 15
16 RPN Example Convert the following standard mathematical expression into RPN: (23 3) / (4 + 6) operand1 operand2 operator operand1 operand2 operator / operand1 operand2 operator 16
17 Evaluating RPN with a Stack i 0 A / x A[i] yes i == A.length? no Is x a number? yes Push x on S i i + 1 no Pop top 2 numbers Perform operation Push result on S / = = 2 S Output Pop S Answer: 2 17
18 Example Step by Step RPN: / Stack Trace:
19 Stacks in Ruby You can treat arrays (lists) as stacks in Ruby. stack x stack = [] [] stack.push(1) [1] stack.push(2) [1,2] stack.push(3) [1,2,3] x = stack.pop() [1,2] 3 x = stack.pop() [1] 2 x = stack.pop() [] 1 x = stack.pop() nil nil 19
20 Queues A queue is a data structure that works on the principle of First In First Out (FIFO). FIFO: The first item stored in the queue is the first item that can be taken out. Common queue operations: Enqueue put a new element in to the rear of the queue Dequeue remove the first element from the front of the queue Applications: printers, simulations, networks 20
21 UNIT 6B Organizing Data: Hash Tables 21
22 Comparing Algorithms You are a professor and you want to find an exam in a large pile of n exams. Search the pile using linear search. Per student: O(n) Total for n students: O(n 2 ) Have an assistant sort the exams first by last name. Assistant s work: O(n log n) using merge sort Professor: Search for one student: O(log n) using binary search Total for n students: O(n log n) 22
23 Another way Set up a large number of buckets. Place each exam into a bucket based on some function. Example: 100 buckets, each labeled with a value from 00 to 99. Use the student s last two digits of their student ID number to choose the bucket. Ideally, if the exams get distributed evenly, there will be only a few exams per bucket. Assistant: O(n) putting n exams into the buckets Professor: O(1) search for an exam by going directly to the relevant bucket and searching through a few exams. 23
24 Strings and ASCII codes s = "hello" for i in 0..s.length-1 do print s[i], "\n" end You can treat a string like an array in Ruby. If you access the ith character, you get the ASCII code for that character. 24
25 Hash table Let s assume that we are going to store only lower case strings into an array (hash table). table1 = Array.new(26) => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] 25
26 Hash table We could pick the array position where each string is stored based on the first letter of the string using this hash function: def h(string) end return string[0] - 97 The ASCII values of lowercase letters are: a -> 97, b -> 98, c -> 99, d -> 100, etc. 26
27 Inserting into Hash Table To insert into the hash table, we simply use the hash function h to determine which index ( bucket ) to store the element. def insert(table, name) end table[h(name)] = name insert(table1, aardvark ) insert(table1, beaver )... 27
28 Hash function (cont d) Using the hash function h: aardvark would be stored in an array at index 0 beaver would be stored in an array at index 1 kangaroo would be stored in an array at index 10 whale would be stored in an array at index 22 table1 => ["aardvark", "beaver", nil, nil, nil, nil, nil, nil, nil, nil, "kangaroo", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "whale", nil, nil, nil] 28
29 Hash function (cont d) But if we try to insert bunny and bear into the hash table, each word overwrites the previous word since they all hash to index 1: >> insert(table1,"bunny") >> insert(table1,"bear") >> table1 => ["aardvark", "bear", nil, nil, nil, nil, nil, nil, nil, nil, "kangaroo", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "whale", nil, nil, nil] 29
30 Revised Hash table Let s make our hash table an array of arrays (an array of buckets ) Each bucket can hold more than one string. table2 = Array.new(26) for i in do end table2[i] = [] => [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []] 30
31 Revised insert function def insert(table, key) # find the bucket (array) in the table # array using the hash function h bucket = table[h(key)] # append the key string to the bucket # array bucket << key end 31
32 Inserting into new hash table insert(table2, "aardvark") >> insert(table2, "beaver") >> insert(table2, "kangaroo") >> insert(table2, "whale") >> insert(table2, "bunny") >> insert(table2, "bear") >> table2 => [["aardvark"], ["beaver", "bunny", "bear"], [], [], [], [], [], [], [], [], ["kangaroo"], [], [], [], [], [], [], [], [], [], [], [], ["whale"], [], [], []] 32
33 Collisions beaver, bunny and bear all end up in the same bucket. These are collisions in a hash table. The more collisions you have in a bucket, the more you have to search in the bucket to find the desired element. We want to try to minimize the collisions by creating a hash function that distribute the keys (strings) into different buckets as evenly as possible. 33
34 First Try def h(string) k = 0 for i in 0..string.length-1 do k = string[i] + k end return k end h( hello ) => 532 h( olleh ) => 532 Permutations still give same index (collision) and numbers are high. 34
35 Second Try def h(string) end k = 0 for i in 0..string.length-1 do end k = string[i] + k*256 return k h( hello ) => h( olleh ) => Better, but numbers are still high. We probably don t want to (or can t) create arrays that have indices this large. 35
36 Third Try def h(string, tablesize) end k = 0 for i in 0..string.length-1 do end k = string[i] + k*256 return k % tablesize We can use the modulo operator to take the large values and map them to indices for a smaller array. 36
37 Revised insert function def insert(table, key) # find the bucket (array) in the table # array using the hash function h bucket = table[h(key, table.length)] # append the key string to the bucket # array bucket << key end 37
38 Final results table3 = Array.new(13) for i in do table3[i] = [] end => [[], [], [], [], [], [], [], [], [], [], [], [], []] >> insert(table3,"aardvark") >> insert(table3,"bear") >> insert(table3,"bunny") >> insert(table3,"beaver") >> insert(table3,"dog") >> table3 Still have one collision, but b-words are distributed better. => [[], [], [], [], [], [], [], [], [], ["bunny"], ["aardvark", "bear"], ["dog"], ["beaver"]] 38
39 Searching in a hash table To search for a key, use the hash function to find out which bucket it should be in, if it is in the table at all. def contains?(table, key) bucket = table[h(key,table.length)] for entry in bucket do return true if entry == key end return false end 39
40 Efficiency If the keys (strings) are distributed well throughout the table, then each bucket will only have a few keys and the search should take O(1) time. Example: If we have a table of size 1000 and we hash 4000 keys into the table and each bucket has approximately the same number of keys (approx. 4), then a search will only require us to look at approx. 4 keys => O(1) But, the distribution of keys is dependent on the keys and the hash function we use! 40
UNIT 6A Organizing Data: Lists. Last Two Weeks
UNIT 6A Organizing Data: Lists 1 Last Two Weeks Algorithms: Searching and sorting Problem solving technique: Recursion Asymptotic worst case analysis using the big O notation 2 1 This Week Observe: The
UNIT 6B Organizing Data: Hash Tables. Comparing Algorithms
UNIT 6B Organizing Data: Hash Tables 1 Comparing Algorithms You are a professor and you want to find an exam in a large pile of n exams. Search the pile using linear search. Per student: O(n) Total for
UNIT 6B Organizing Data: Hash Tables. Announcements
UNIT 6B Organizing Data: Hash Tables 1 Announcements Online assignment due Wednesday 27 th Lab Exam 1 Thursday 28 th Write simple programs during recitation 2 1 Last Lecture Arrays, lists, stacks, queues
UNIT 6B Organizing Data: Hash Tables. Comparing Algorithms
UNIT 6B Organizing Data: Hash Tables 1 Comparing Algorithms You are a professor and you want to find an exam in a large pile of n exams, one per student. Search the pile using linear search. Per student:
Revision Statement while return growth rate asymptotic notation complexity Compare algorithms Linear search Binary search Preconditions: sorted,
[1] Big-O Analysis AVERAGE(n) 1. sum 0 2. i 0. while i < n 4. number input_number(). sum sum + number 6. i i + 1 7. mean sum / n 8. return mean Revision Statement no. of times executed 1 1 2 1 n+1 4 n
15-110: Principles of Computing, Spring Problem Set 6 (PS6) Due: Friday, March 2 by 2:30PM via Gradescope Hand-in
15-110: Principles of Computing, Spring 2018 Problem Set 6 (PS6) Due: Friday, March 2 by 2:30PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill in
12 Abstract Data Types
12 Abstract Data Types 12.1 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). Define
End-Term Examination Second Semester [MCA] MAY-JUNE 2006
(Please write your Roll No. immediately) Roll No. Paper Code: MCA-102 End-Term Examination Second Semester [MCA] MAY-JUNE 2006 Subject: Data Structure Time: 3 Hours Maximum Marks: 60 Note: Question 1.
CMSC Introduction to Algorithms Spring 2012 Lecture 7
CMSC 351 - Introduction to Algorithms Spring 2012 Lecture 7 Instructor: MohammadTaghi Hajiaghayi Scribe: Rajesh Chitnis 1 Introduction In this lecture we give an introduction to Data Structures like arrays,
! Determine if a number is odd or even. ! Determine if a number/character is in a range. - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to:! Determine if a number is odd or even CS 2308 Fall 2018 Jill Seaman! Determine if a number/character is in a range - 1 to 10 (inclusive) - between
l Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
! Determine if a number is odd or even. ! Determine if a number/character is in a range. - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises CS 2308 Spring 2014 Jill Seaman Chapters 1-7 + 11 Write C++ code to: Determine if a number is odd or even Determine if a number/character is in a range - 1 to 10 (inclusive) - between
INSTITUTE OF AERONAUTICAL ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name Course Code Class Branch DATA STRUCTURES ACS002 B. Tech
15110 PRINCIPLES OF COMPUTING SAMPLE EXAM 2
15110 PRINCIPLES OF COMPUTING SAMPLE EXAM 2 Name Section Directions: Answer each question neatly in the space provided. Please read each question carefully. You have 50 minutes for this exam. No electronic
Stacks, Queues and Hierarchical Collections
Programming III Stacks, Queues and Hierarchical Collections 2501ICT Nathan Contents Linked Data Structures Revisited Stacks Queues Trees Binary Trees Generic Trees Implementations 2 Copyright 2002- by
ECE250: Algorithms and Data Structures Midterm Review
ECE250: Algorithms and Data Structures Midterm Review Ladan Tahvildari, PEng, SMIEEE Associate Professor Software Technologies Applied Research (STAR) Group Dept. of Elect. & Comp. Eng. University of Waterloo
EC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3
UNIT 3 LINEAR DATA STRUCTURES 1. Define Data Structures Data Structures is defined as the way of organizing all data items that consider not only the elements stored but also stores the relationship between
#06 More Structures LIFO FIFO. Contents. Queue vs. Stack 3. Stack Operations. Pop. Push. Stack Queue Hash table
Contents #06 More Structures -07 FUNDAMENTAL PROGRAMMING I Stack Queue Hash table DEPARTMENT OF COMPUTER ENGINEERING, PSU v. Queue vs. Stack Stack Operations IN IN OUT Push: add an item to the top Pop:
Data Structure. A way to store and organize data in order to support efficient insertions, queries, searches, updates, and deletions.
DATA STRUCTURES COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges book. Data
Stacks Fall 2018 Margaret Reid-Miller
Stacks 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Today: Quiz 5 solutions Recursive add from last week (see SinglyLinkedListR.java) Stacks ADT (Queues on Thursday) ArrayStack
MCA SEM-II Data Structure
MCA SEM-II Data Structure Timings: 30 Minutes] Objective Questions Keys [ Marks - 40 1. The memory address of the first element of an array is called a. Floor address b. Foundation address c. First address
Summer Final Exam Review Session August 5, 2009
15-111 Summer 2 2009 Final Exam Review Session August 5, 2009 Exam Notes The exam is from 10:30 to 1:30 PM in Wean Hall 5419A. The exam will be primarily conceptual. The major emphasis is on understanding
Introduction p. 1 Pseudocode p. 2 Algorithm Header p. 2 Purpose, Conditions, and Return p. 3 Statement Numbers p. 4 Variables p. 4 Algorithm Analysis
Introduction p. 1 Pseudocode p. 2 Algorithm Header p. 2 Purpose, Conditions, and Return p. 3 Statement Numbers p. 4 Variables p. 4 Algorithm Analysis p. 5 Statement Constructs p. 5 Pseudocode Example p.
1. Two main measures for the efficiency of an algorithm are a. Processor and memory b. Complexity and capacity c. Time and space d.
1. Two main measures for the efficiency of an algorithm are a. Processor and memory b. Complexity and capacity c. Time and space d. Data and space 2. The time factor when determining the efficiency of
1 P a g e A r y a n C o l l e g e \ B S c _ I T \ C \
BSc IT C Programming (2013-2017) Unit I Q1. What do you understand by type conversion? (2013) Q2. Why we need different data types? (2013) Q3 What is the output of the following (2013) main() Printf( %d,
Stating the obvious, people and computers do not speak the same language.
3.4 SYSTEM SOFTWARE 3.4.3 TRANSLATION SOFTWARE INTRODUCTION Stating the obvious, people and computers do not speak the same language. People have to write programs in order to instruct a computer what
CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course
CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course Today s Topics Review Uses and motivations of hash tables Major concerns with hash tables Properties Hash function Hash
Stacks, Queues and Hierarchical Collections. 2501ICT Logan
Stacks, Queues and Hierarchical Collections 2501ICT Logan Contents Linked Data Structures Revisited Stacks Queues Trees Binary Trees Generic Trees Implementations 2 Queues and Stacks Queues and Stacks
The Stack and Queue Types
The Stack and Queue Types Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html 2 Programming Principle of the Day Do the simplest thing that could possibly work A good
Hash Tables Outline. Definition Hash functions Open hashing Closed hashing. Efficiency. collision resolution techniques. EECS 268 Programming II 1
Hash Tables Outline Definition Hash functions Open hashing Closed hashing collision resolution techniques Efficiency EECS 268 Programming II 1 Overview Implementation style for the Table ADT that is good
1 P age DS & OOPS / UNIT II
UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular
Name CPTR246 Spring '17 (100 total points) Exam 3
Name CPTR246 Spring '17 (100 total points) Exam 3 1. Linked Lists Consider the following linked list of integers (sorted from lowest to highest) and the changes described. Make the necessary changes in
MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
CS 8391 DATA STRUCTURES
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK CS 8391 DATA STRUCTURES UNIT- I PART A 1. Define: data structure. A data structure is a way of storing and organizing data in the memory for
Postfix (and prefix) notation
Postfix (and prefix) notation Also called reverse Polish reversed form of notation devised by mathematician named Jan Łukasiewicz (so really lü-kä-sha-vech notation) Infix notation is: operand operator
ADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 )
ADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 ) Unit - 2 By: Gurpreet Singh Dean Academics & H.O.D. (C.S.E. / I.T.) Yamuna Institute of Engineering & Technology, Gadholi What is a Stack? A stack is a
Course Review. Cpt S 223 Fall 2009
Course Review Cpt S 223 Fall 2009 1 Final Exam When: Tuesday (12/15) 8-10am Where: in class Closed book, closed notes Comprehensive Material for preparation: Lecture slides & class notes Homeworks & program
CSE030 Fall 2012 Final Exam Friday, December 14, PM
CSE030 Fall 2012 Final Exam Friday, December 14, 2012 3-6PM Write your name here and at the top of each page! Name: Select your lab session: Tuesdays Thursdays Paper. If you have any questions or need
Stacks. Revised based on textbook author s notes.
Stacks Revised based on textbook author s notes. Stacks A restricted access container that stores a linear collection. Very common for solving problems in computer science. Provides a last-in first-out
Types of Data Structures
DATA STRUCTURES material prepared by: MUKESH BOHRA Follow me on FB : http://www.facebook.com/mukesh.sirji4u The logical or mathematical model of data is called a data structure. In other words, a data
CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
Stacks and Queues. Stack - Abstract Data Type. Stack Applications. Stack - Abstract Data Type - C Interface
Stacks and Queues Stack - Abstract Data Type. Stacks and queues ubiquitous -structure in computing. Part of many important algorithms. Good example of abstract types. Good example to practice programming
III Data Structures. Dynamic sets
III Data Structures Elementary Data Structures Hash Tables Binary Search Trees Red-Black Trees Dynamic sets Sets are fundamental to computer science Algorithms may require several different types of operations
CS251-SE1. Midterm 2. Tuesday 11/1 8:00pm 9:00pm. There are 16 multiple-choice questions and 6 essay questions.
CS251-SE1 Midterm 2 Tuesday 11/1 8:00pm 9:00pm There are 16 multiple-choice questions and 6 essay questions. Answer the multiple choice questions on your bubble sheet. Answer the essay questions in the
Data Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved.
Data Structures Outline Introduction Linked Lists Stacks Queues Trees Introduction dynamic data structures - grow and shrink during execution Linked lists - insertions and removals made anywhere Stacks
CS301 - Data Structures Glossary By
CS301 - Data Structures Glossary By Abstract Data Type : A set of data values and associated operations that are precisely specified independent of any particular implementation. Also known as ADT Algorithm
Course Review for Finals. Cpt S 223 Fall 2008
Course Review for Finals Cpt S 223 Fall 2008 1 Course Overview Introduction to advanced data structures Algorithmic asymptotic analysis Programming data structures Program design based on performance i.e.,
DATA STRUCTURE : A MCQ QUESTION SET Code : RBMCQ0305
Q.1 If h is any hashing function and is used to hash n keys in to a table of size m, where n
CS8391-DATA STRUCTURES
ST.JOSEPH COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERI NG CS8391-DATA STRUCTURES QUESTION BANK UNIT I 2MARKS 1.Explain the term data structure. The data structure can be defined
Arrays and Linked Lists
Arrays and Linked Lists Abstract Data Types Stacks Queues Priority Queues and Deques John Edgar 2 And Stacks Reverse Polish Notation (RPN) Also known as postfix notation A mathematical notation Where every
First Semester - Question Bank Department of Computer Science Advanced Data Structures and Algorithms...
First Semester - Question Bank Department of Computer Science Advanced Data Structures and Algorithms.... Q1) What are some of the applications for the tree data structure? Q2) There are 8, 15, 13, and
Data Abstractions. National Chiao Tung University Chun-Jen Tsai 05/23/2012
Data Abstractions National Chiao Tung University Chun-Jen Tsai 05/23/2012 Concept of Data Structures How do we store some conceptual structure in a linear memory? For example, an organization chart: 2/32
FORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- MARCH, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours
TED (10)-3071 Reg. No.. (REVISION-2010) (Maximum marks: 100) Signature. FORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- MARCH, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours PART
COSC160: Data Structures: Lists and Queues. Jeremy Bolton, PhD Assistant Teaching Professor
COSC160: Data Structures: Lists and Queues Jeremy Bolton, PhD Assistant Teaching Professor Outline I. Queues I. FIFO Queues I. Usage II. Implementations II. LIFO Queues (Stacks) I. Usage II. Implementations
CS24 Week 4 Lecture 2
CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track
Lecture Notes. char myarray [ ] = {0, 0, 0, 0, 0 } ; The memory diagram associated with the array can be drawn like this
Lecture Notes Array Review An array in C++ is a contiguous block of memory. Since a char is 1 byte, then an array of 5 chars is 5 bytes. For example, if you execute the following C++ code you will allocate
DEEPIKA KAMBOJ UNIT 2. What is Stack?
What is Stack? UNIT 2 Stack is an important data structure which stores its elements in an ordered manner. You must have seen a pile of plates where one plate is placed on top of another. Now, when you
CS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 07 / 26 / 2016 Instructor: Michael Eckmann Today s Topics Comments/Questions? Stacks and Queues Applications of both Priority Queues Michael Eckmann - Skidmore
BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE. Sample Final Exam
BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE CSI33 Sample Final Exam NAME Directions: Solve problems 1 through 5 of Part I and choose 5 of the
Hash Tables. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Data Dictionary Revisited
Unit 9, Part 4 Hash Tables Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Data Dictionary Revisited We've considered several data structures that allow us to store and search for data
CSCE 2014 Final Exam Spring Version A
CSCE 2014 Final Exam Spring 2017 Version A Student Name: Student UAID: Instructions: This is a two-hour exam. Students are allowed one 8.5 by 11 page of study notes. Calculators, cell phones and computers
Objective Questions for Online Practical Exams under CBCS Scheme Subject: Data Structure-I (CS-113)
Objective Questions for Online Practical Exams under CBCS Scheme Subject: Data Structure-I (CS-113) 1. The number of interchanges required to sort 5, 1, 6, 2 4 in ascending order using Bubble Sort (A)
ECE 2035 Programming HW/SW Systems Fall problems, 5 pages Exam Three 28 November 2012
Instructions: This is a closed book, closed note exam. Calculators are not permitted. If you have a question, raise your hand and I will come to you. Please work the exam in pencil and do not separate
Introduction to Data Structure
Introduction to Data Structure Introduction to Data Structure Computer is an electronic machine which is used for data processing and manipulation. When programmer collects such type of data for processing,
CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators)
_ UWNetID: Lecture Section: A CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will give
CS W3134: Data Structures in Java
CS W3134: Data Structures in Java Lecture #10: Stacks, queues, linked lists 10/7/04 Janak J Parekh HW#2 questions? Administrivia Finish queues Stack/queue example Agenda 1 Circular queue: miscellany Having
STACKS AND QUEUES. Problem Solving with Computers-II
STACKS AND QUEUES Problem Solving with Computers-II 2 Stacks container class available in the C++ STL Container class that uses the Last In First Out (LIFO) principle Methods i. push() ii. iii. iv. pop()
CSE 373 OCTOBER 11 TH TRAVERSALS AND AVL
CSE 373 OCTOBER 11 TH TRAVERSALS AND AVL MINUTIAE Feedback for P1p1 should have gone out before class Grades on canvas tonight Emails went to the student who submitted the assignment If you did not receive
15. Stacks and Queues
COMP1917 15s2 15. Stacks and Queues 1 COMP1917: Computing 1 15. Stacks and Queues Reading: Moffat, Section 10.1-10.2 Overview Stacks Queues Adding to the Tail of a List Efficiency Issues Queue Structure
CS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 03 / 31 / 2017 Instructor: Michael Eckmann Today s Topics Questions? Comments? finish RadixSort implementation some applications of stack Priority Queues Michael
R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)
SET - 1 II B. Tech I Semester Supplementary Examinations, May/June - 2016 PART A 1. a) Write a procedure for the Tower of Hanoi problem? b) What you mean by enqueue and dequeue operations in a queue? c)
! Mon, May 5, 2:00PM to 4:30PM. ! Closed book, closed notes, clean desk. ! Comprehensive (covers entire course) ! 30% of your final grade
Final Exam Review Final Exam Mon, May 5, 2:00PM to 4:30PM CS 2308 Spring 2014 Jill Seaman Closed book, closed notes, clean desk Comprehensive (covers entire course) 30% of your final grade I recommend
Department of Computer Science and Engineering. CSE 2011: Fundamentals of Data Structures Winter 2009, Section Z
Department of omputer Science and Engineering SE 2011: Fundamentals of Data Structures Winter 2009, Section Z Instructor: N. Vlajic Date: pril 14, 2009 Midterm Examination Instructions: Examination time:
CS-141 Exam 2 Review April 4, 2015 Presented by the RIT Computer Science Community
CS-141 Exam 2 Review April 4, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu Linked Lists 1. You are given the linked list: 1 2 3. You may assume that each node has one field
An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.
Data Structures Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous
Solution: The examples of stack application are reverse a string, post fix evaluation, infix to postfix conversion.
1. What is the full form of LIFO? The full form of LIFO is Last In First Out. 2. Give some examples for stack application. The examples of stack application are reverse a string, post fix evaluation, infix
Data Structures. Chapter 06. 3/10/2016 Md. Golam Moazzam, Dept. of CSE, JU
Data Structures Chapter 06 1 Stacks A stack is a list of elements in which an element may be inserted or deleted only at one end, called the top of the stack. This means that elements are removed from
! Determine if a number is odd or even. ! Determine if a number/character is in a range. ! Assign a category based on ranges (wind speed)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to:! Determine if a number is odd or even CS 2308 Spring 2013 Jill Seaman! Determine if a number/character is in a range - 1 to 10 (inclusive) - between
CSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
Arrays in Java Multi-dimensional Arrays
Suppose you are tasked with writing a program to help maintain seating records for a theatre company. The auditorium has 25 rows, each of which contains 30 seats. One utility you need to provide is tracking
CS200 Spring 2004 Midterm Exam II April 14, Value Points a. 5 3b. 16 3c. 8 3d Total 100
CS200 Spring 2004 Midterm Exam II April 14, 2004 Value Points 1. 12 2. 26 3a. 5 3b. 16 3c. 8 3d. 8 4. 25 Total 100 Name StudentID# 1. [12 pts] Short Answer from recitations: a) [3 pts] What is the first
Data Structures Question Bank Multiple Choice
Section 1. Fundamentals: Complexity, Algorthm Analysis 1. An algorithm solves A single problem or function Multiple problems or functions Has a single programming language implementation 2. A solution
MIDTERM EXAMINATION Spring 2010 CS301- Data Structures
MIDTERM EXAMINATION Spring 2010 CS301- Data Structures Question No: 1 Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the
Hashing. October 19, CMPE 250 Hashing October 19, / 25
Hashing October 19, 2016 CMPE 250 Hashing October 19, 2016 1 / 25 Dictionary ADT Data structure with just three basic operations: finditem (i): find item with key (identifier) i insert (i): insert i into
Visit ::: Original Website For Placement Papers. ::: Data Structure
Data Structure 1. What is data structure? A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge about the relationship
ASSIGNMENTS. Progra m Outcom e. Chapter Q. No. Outcom e (CO) I 1 If f(n) = Θ(g(n)) and g(n)= Θ(h(n)), then proof that h(n) = Θ(f(n))
ASSIGNMENTS Chapter Q. No. Questions Course Outcom e (CO) Progra m Outcom e I 1 If f(n) = Θ(g(n)) and g(n)= Θ(h(n)), then proof that h(n) = Θ(f(n)) 2 3. What is the time complexity of the algorithm? 4
Lists, Stacks, and Queues. (Lists, Stacks, and Queues ) Data Structures and Programming Spring / 50
Lists, Stacks, and Queues (Lists, Stacks, and Queues ) Data Structures and Programming Spring 2016 1 / 50 Abstract Data Types (ADT) Data type a set of objects + a set of operations Example: integer set
CSE Data Structures and Introduction to Algorithms... In Java! Instructor: Fei Wang. Mid-Term Exam. CSE2100 DS & Algorithms 1
CSE 2100 Data Structures and Introduction to Algorithms...! In Java!! Instructor: Fei Wang! Mid-Term Exam CSE2100 DS & Algorithms 1 1. True or False (20%=2%x10)! (1) O(n) is O(n^2) (2) The height h of
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING B.E SECOND SEMESTER CS 6202 PROGRAMMING AND DATA STRUCTURES I TWO MARKS UNIT I- 2 MARKS
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING B.E SECOND SEMESTER CS 6202 PROGRAMMING AND DATA STRUCTURES I TWO MARKS UNIT I- 2 MARKS 1. Define global declaration? The variables that are used in more
CPSC 211, Sections : Data Structures and Implementations, Honors Final Exam May 4, 2001
CPSC 211, Sections 201 203: Data Structures and Implementations, Honors Final Exam May 4, 2001 Name: Section: Instructions: 1. This is a closed book exam. Do not use any notes or books. Do not confer with
A6-R3: DATA STRUCTURE THROUGH C LANGUAGE
A6-R3: DATA STRUCTURE THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the TEAR-OFF
DHANALAKSHMI COLLEGE OF ENGINEERING Tambaram, Chennai
DHANALAKSHMI COLLEGE OF ENGINEERING Tambaram, Chennai 601 301 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING III SEMESTER - R 2017 CS8381 DATA STRUCTURES LABORATORY LABORATORY MANUAL Name Register No Section
COSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)
COSC 2007 Data Structures II Final Exam Thursday, April 13 th, 2006 This is a closed book and closed notes exam. There are total 3 parts. Please answer the questions in the provided space and use back
CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2
CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2 Prof. John Park Based on slides from previous iterations of this course Today s Topics Overview Uses and motivations of hash tables Major concerns with hash
Computer Science 1 Study Union Practice Problems. What are the arguments to malloc? calloc? realloc? What do they do?
Study Union Review Jacob Cornett 1 Computer Science 1 Study Union Practice Problems!This may not be a comprehensive review of everything that will be on your exam and we may go over more during the session.
GUJARAT TECHNOLOGICAL UNIVERSITY COMPUTER ENGINEERING (07) / INFORMATION TECHNOLOGY (16) / INFORMATION & COMMUNICATION TECHNOLOGY (32) DATA STRUCTURES
GUJARAT TECHNOLOGICAL UNIVERSITY COMPUTER ENGINEERING () / INFMATION TECHNOLOGY (6) / INFMATION & COMMUNICATION TECHNOLOGY (32) DATA STRUCTURES Type of course: Compulsory SUBJECT CODE: 2302 B.E. 3 rd Semester
Data Structures and Algorithms for Engineers
04-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University
How to declare an array in C?
Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous values.
University of Illinois at Urbana-Champaign Department of Computer Science. Second Examination
University of Illinois at Urbana-Champaign Department of Computer Science Second Examination CS 225 Data Structures and Software Principles Spring 2014 7-10p, Tuesday, April 8 Name: NetID: Lab Section
Final Exam Data Structure course. No. of Branches (5)
Page ١of 5 College Of Science and Technology Khan younis - Palestine Computer Science & Inf. Tech. Information Technology Data Structure (Theoretical Part) Time: 2 Hours Name: ID: Mark: Teacher 50 Mahmoud