Download presentation
Presentation is loading. Please wait.
Published byGeoffrey Simpson Modified over 8 years ago
1
Maitrayee Mukerji
3
INPUT MEMORY PROCESS OUTPUT DATA INFO
4
Representation of data and its associated operations int or char is a simplest data structure Systematic way of organizing or structuring a collection of data items Array of names
5
How to structure information for efficient processing to solve a given problem given specific resource constraints Measure effectiveness of solutions/ approaches to solve a given problem and determine the most appropriate one Calculate tradeoffs/cost benefit (time & space) associated with different data structures
6
A data structure requires a certain amount of space for each data item it stores, a certain amount of time to perform a single basic operation (insert, delete, search), and a certain amount of programming effort. Each problem has constraints on available space and time. Each solution to a problem makes use of the basic operations in some relative proportion, and the data structure selection process must account for this. Only after a careful analysis of your problem’s characteristics can you determine the best data structure for the task.
7
Analyze the problem to determine the basic operations that must be supported. Examples of basic operations include inserting a data item into the data structure, deleting a data item from the data structure, and finding a specified data item. Quantify the resource constraints for each operation.
8
Resource constraints on certain key operations normally drive the data structure selection process. Are all data items inserted into the data structure at the beginning, or are insertions interspersed with other operations? Can data items be deleted? Are all data items processed in some well-defined order, or is search for specific data items allowed? Select the data structure that best meets these requirements.
9
A simple model of bank supports opening of accounts, closing of accounts, and adding money or withdrawing money from accounts.
10
A company is developing a database system containing information about cities and towns in the India. There are many thousands of cities and towns, and the database program should allow users to find information about a particular place by name. Users should also be able to find all places that match a particular value or range of values for attributes such as location or population size.
11
A type is a collection of values ◦ Boolean Type : true or false ◦ Simple Types Vs Aggregate/Composite types A data type is a type together with a collection of operations to manipulate the type. For example, an integer variable is a member of the integer data type. Addition is an example of an operation on the integer data type.
12
An abstract data type (ADT) is the realization of a data type as a software component. The interface of the ADT is defined in terms of a type and a set of operations on that type. The behavior of each operation is determined by its inputs and outputs.
13
An ADT does not specify how the data type is implemented. These implementation details are hidden from the user of the ADT and protected from outside access, a concept referred to as encapsulation. A data structure is the implementation for an ADT.
14
An ADT for a list of integers might specify the following operations: ◦ Insert a new integer at a particular position in the list. ◦ Return true if the list is empty. ◦ Reinitialize the list. ◦ Return the number of integers currently in the list. ◦ Delete the integer at a particular position in the list.
15
In an object-oriented language, an ADT and its implementation together make up a class. ◦ Each operation associated with the ADT is implemented by a member function or method. ◦ The variables that define the space required by a data item are referred to as data members. ◦ An object is an instance of a class, that is, something that is created and takes up storage during the execution of a computer program.
16
The term “data structure” often refers to data stored in a computer’s main memory. The related term file structure often refers to the organization of data on peripheral storage, such as a disk drive or CD-ROM.
17
A distinction should be made between the logical concept of a data type and its physical implementation in a computer program. ◦ LIST can be implemented using either arrays or linked list ◦ Array – “ambiguous” term – it can either refer to a data type or implementation
19
A problem is a task to be performed. ◦ often expressed in terms of inputs and matching outputs. A problem definition should not include any constraints on how the problem is to be solved. ◦ The solution method should be developed only after the problem is precisely defined and thoroughly understood.
20
However, a problem definition should include constraints on the resources that may be consumed by any acceptable solution. ◦ For example, any computer program may use only the main memory and disk space available, and it must run in a “reasonable” amount of time.
21
An algorithm is a method or a process followed to solve a problem. If the problem is viewed as a function, then an algorithm is an implementation for the function that transforms an input to the corresponding output. A problem can be solved by many different algorithms. A given algorithm solves only one problem Associated with each data structure are algorithms for manipulating the data,
22
It must be correct / gives intended output for specified inputs It is composed of a series of concrete steps. ◦ Action specified by the step is completely understood and is doable There can be no ambiguity as to which step will be performed next ◦ Conditional, Branching, Repetitions It must terminate. In other words, it may not go into an infinite loop. ◦
23
A program is an instantiation of an algorithm in a computer programming language.
24
Each data structure and each algorithm has costs and benefits ◦ How to assess cost and benefit? Related to costs and benefits is the notion of tradeoffs ◦ Time vs Speed
25
Programmers should know enough about common practice to avoid reinventing the wheel. ◦ Thus, programmers need to learn the commonly used data structures, their related algorithms, and the most frequently encountered design patterns found in programming. Data structures follow needs. ◦ Programmers must learn to assess application needs first, then find a data structure with matching capabilities.
26
Chapter 1 on Clifford A. Shaffer (2011), A Practical Introduction to Data Structures and Algorithm Analysis Edition 3.1 (Java Version), Available at http://people.cs.vt.edu/˜shaffer/Book/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.