Data Structures CS231 Instructor: Dr. Hammad Majeed hammad.majeed@niit.edu.pk Office: Academic Block 4 First Floor Useful Information • Course Web Site: Will be announced soon – All the lectures, projects and assignments will be published there • Consulting Hour: Thu 12:00PM-1:00PM • For the submission of the projects/assignments mydropbox will be used • Detailed info of mydropbox is available at http://www.niit.edu.pk/%7Eqmr/Students/my dropbox_student.htm • mydropbox join code is 233mv2b55x56 Reference Books • NOTE: There is NO Text Book • Data Structures and Algorithms in C++ -Second Edition by Adam Drozdek • C++ An Introduction to Data Structures by Larry Nyhoff • C++ plus Data Structures by Nell Dale and David Teague • Data Structures and Algorithms by Robert Lafore Marks Distribution and GradingPolicy • Quizzes (min 6 ) (10%) • One Hour Tests (15% each) • Assignments/Projects (30%) – Projects can be implemented in any language of your choice • Final Exam (30%) • Grading Policy • All the quizzes will be unannounced and there will be no makeup quizzes Introduction to Data Structures • What is Data ? – Any useful information – that can be stored or memorized for future reference • In an organization it can be – Employee’s name, sex, age, department, address so on • In Railway reservation office – Passenger name, traveling date, traveling time, seat number so on • In Computers – Set of integers, Structure(s) or any other user defined data type Abstract Data Types (ADT) • This is a higher level, domain and operations independent specification of data – While working on an “integer” type we don’t worry about its low level implementation (can be 32 bit, or 64 bit number) – Distance = rate * time (rate and time can be of type integer or real numbers) – Employee record means same to the bosses of two different organizations, no matter how differently they are stored by the admin officers Data Structures • Collection of data in an ordered fashion – Ages of the students in a class are all numbers (data), but once are grouped in one line, one after the other becomes structured data (arrays) – Age, class, sex, height, weight of a student is all data, but if we place them in one line per student it would be structured data (structures/struct) – Arrays, list, queues, stack, doubly linked lists, structures etc are all data structures • Different operations are defined for each type of data structure to add, delete or modify its content Algorithms • The operations defined on the data structures are generally knows as algorithms • For each data structure there has to be defined algorithms • Algorithms are normally used to add, delete, modify, sort items of a data structure • All programming languages are generally equipped with conventional data structures and algorithms. • New data structures and the algorithms for manipulation can be defined by the user