SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Data Structures
and Algorithms
Lec-1
CSC 391
2
Data Structures and Algorithms
Data Structure
©SMT, Faculty, CSE, IUBAT
In computer science, a data structure is a particular way of storing and
organizing data in a computer’s memory so that it can be used
efficiently. Data may be organized in many different ways.
The logical or mathematical model of a particular organization
of data is called a data structure.
3
Data Structures and Algorithms
Types
Categories of Data Structure:
The data structure can be classified in to major types:
• Linear Data Structure
• Non-linear Data Structure
1. Linear Data Structure:
A data structure is said to be linear if its elements form any sequence. There
are basically two ways of representing such linear structure in memory.
a) One way is to have the linear relationships between the elements
represented by means of sequential memory location. These linear
structures are called arrays.
b) The other way is to have the linear relationship between the
elements represented by means of pointers or links. These linear structures
are called linked lists.
©SMT, Faculty, CSE, IUBAT
4
Data Structures and Algorithms
The common examples of linear data structure are- Arrays, Queues, Stacks,
Linked lists
2. Non-linear Data Structure:
This structure is mainly used to represent data containing a hierarchical
relationship between elements.
e.g. graphs, family trees and table of contents.
Types
©SMT, Faculty, CSE, IUBAT
5
Data Structures and Algorithms
Memory Allocation
©SMT, Faculty, CSE, IUBAT
Memory allocation can be classified as either
 Contiguous
 Linked
 Indexed
Prototypical examples:
 Contiguous allocation: arrays
 Linked allocation: linked lists
6
Data Structures and Algorithms
Contiguous Allocation
©SMT, Faculty, CSE, IUBAT
An array stores n objects in a single contiguous space of memory
Unfortunately, if more memory is required, a request for new
memory usually requires copying all information into the new
memory
 In general, you cannot request for the operating
system to allocate to you the next n memory
locations
7
Data Structures and Algorithms
Linked Allocation
©SMT, Faculty, CSE, IUBAT
Linked storage such as a linked list associates two pieces of data
with each item being stored:
 The object itself, and
 A reference to the next item
 In C++ that reference is the address of the next node
8
Data Structures and Algorithms
Linked Allocation
©SMT, Faculty, CSE, IUBAT
This is a class describing such a node
template <typename Type>
class Node {
private:
Type element;
Node *next_node;
public:
// ...
};
9
Data Structures and Algorithms
Linked Allocation
©SMT, Faculty, CSE, IUBAT
The operations on this node must include:
 Constructing a new node
 Accessing (retrieving) the value
 Accessing the next pointer
Node( const Type& = Type(), Node* = nullptr );
Type retrieve() const;
Node *next() const; Pointing to nothing has been represented
as:
C NULL
Java/C# null
C++ (old) 0
C++ (new) nullptr
Symbolically Ø
10
Data Structures and Algorithms
Linked Allocation
©SMT, Faculty, CSE, IUBAT
For a linked list, however, we also require an object which links to
the first object
The actual linked list class must store two pointers
 A head and tail:
Node *head;
Node *tail;
Optionally, we can also keep a count
int count;
The next_node of the last node is assigned nullptr
11
Data Structures and Algorithms
Linked Allocation
©SMT, Faculty, CSE, IUBAT
The class structure would be:
template <typename Type>
class List {
private:
Node<Type> *head;
Node<Type> *tail;
int count;
public:
// constructor(s)...
// accessor(s)...
// mutator(s)...
};
12
Data Structures and Algorithms
Indexed Allocation
©SMT, Faculty, CSE, IUBAT
With indexed allocation, an array of pointers
(possibly NULL) link to a sequence of
allocated
memory locations
Used in the C++ standard template library
Computer engineering students will see
indexed
allocation in their operating systems course
13
Data Structures and Algorithms
Indexed Allocation
©SMT, Faculty, CSE, IUBAT
Matrices can be implemented using indexed
allocation:
1 2 3
4 5 6
 
 
 
14
Data Structures and Algorithms
Indexed Allocation
©SMT, Faculty, CSE, IUBAT
Matrices can be implemented using indexed allocation
 Most implementations of matrices (or higher-dimensional arrays)
use indices pointing into a single contiguous block of memory
Row-major order Column-major order
C, Python Matlab, Fortran
1 2 3
4 5 6
 
 
 
15
Data Structures and Algorithms
Data Structure Formats
©SMT, Faculty, CSE, IUBAT
We will look at some variations or hybrids of these memory
allocations including:
 Trees
 Graphs
 Array
 Linked List
 Stack
 Queue
16
Data Structures and Algorithms
Trees
©SMT, Faculty, CSE, IUBAT
The linked list can be used to store linearly ordered data
 What if we have multiple next pointers?
A rooted tree (weeks 4-6) is similar
to a linked list but with multiple next
pointers
17
Data Structures and Algorithms
Trees
©SMT, Faculty, CSE, IUBAT
Data frequently contain a hierarchical relationship between various elements.
The data structure which reflects this relationship is called a rooted tree graph
or, simply, a tree.
A tree is a variation on a linked list:
 Each node points to an arbitrary number of subsequent nodes
 Useful for storing hierarchical data
2.2.2.2
18
Data Structures and Algorithms
Graphs
©SMT, Faculty, CSE, IUBAT
Suppose we allow arbitrary relations between any two objects in a
container
 Given n objects, there are n2 – n possible relations
 If we allow symmetry, this reduces to
 For example, consider the network
2
2
n n
2.2.2.2
Data sometimes contains a relationship between pairs of
elements which is not necessarily hierarchical in nature, e.g. an
airline flights only between the cities
connected by lines. This data structure is called Graph.
19
Data Structures and Algorithms
Arrays
©SMT, Faculty, CSE, IUBAT
2.2.2.2
The simplest type of data structure is a linear (or one dimensional)
array. A list of a finite number n of similar data referenced respectively
by a set of n consecutive numbers, usually 1, 2, 3 . . . . . . . n. if we choose
the name A for the array, then the elements of A are denoted by subscript
notation A 1 , A 2 , A 3 . . . . A n
or by the parenthesis notation A (1), A (2), A (3) . . . . . . A (n)
or by the bracket notation A [1], A [2], A [3] . . . . . . A [n]
Example:
A linear array A[8] consisting of numbers is pictured in following figure
20
Data Structures and Algorithms
Linked List
©SMT, Faculty, CSE, IUBAT
A linked list, or one way list is a linear collection of data elements,
called nodes, where the linear order is given by means of pointers. Each
node is divided into two parts:
The first part contains the information of the element/node
The second part contains the address of the next node (link /next
pointer field) in the list.
There is a special pointer Start/List contains the address of first node in the
list. If this special pointer contains null, means that List is empty.
21
Data Structures and Algorithms
Array of Linked Lists
©SMT, Faculty, CSE, IUBAT
Suppose we allow arbitrary
relations between any two
objects in a container
 Alternatively, we could use
a hybrid: an array of
linked lists
A
B
C
D
E
F
G
H
I
J
K
L
2.2.2.2
22
Data Structures and Algorithms
Queue and Stack
©SMT, Faculty, CSE, IUBAT
Queue:
A queue, also called FIFO system, is a linear list in which deletions can take
place only at one end of the list, the Font of the list and insertion can take
place only at the other end Rear.
Stack:
It is an ordered group of homogeneous items of elements. Elements are added
to and removed from the top of the stack (the most recently added items are
at the top of the stack). The last element to be added is the first to be
removed (LIFO: Last In, First Out).
23
Data Structures and Algorithms
Data Structures Operations
©SMT, Faculty, CSE, IUBAT
The data appearing in our data structures are processed by means of certain
operations. In fact, the particular data structure that one chooses for a
given situation depends largely in the frequency with which specific
operations are performed.
The following four operations play a major role in this text:
 Traversing: accessing each record/node exactly once so that certain items
in the record may be processed. (This accessing and processing is
sometimes called “visiting” the record.)
24
Data Structures and Algorithms
Data Structures Operations
©SMT, Faculty, CSE, IUBAT
 Searching: Finding the location of the desired node with a given key
value,
or finding the locations of all such nodes which satisfy one or more conditions.
 Inserting: Adding a new node/record to the structure.
 Deleting: Removing a node/record from the structure.

Mais conteúdo relacionado

Mais procurados

Data cube computation
Data cube computationData cube computation
Data cube computation
Rashmi Sheikh
 

Mais procurados (20)

Arm instruction set
Arm instruction setArm instruction set
Arm instruction set
 
Active database system
Active database systemActive database system
Active database system
 
Knapsack problem using fixed tuple
Knapsack problem using fixed tupleKnapsack problem using fixed tuple
Knapsack problem using fixed tuple
 
8255 PPI (programmable Peripheral Interface) mode 0
8255 PPI (programmable Peripheral Interface) mode 08255 PPI (programmable Peripheral Interface) mode 0
8255 PPI (programmable Peripheral Interface) mode 0
 
Blinking Of LEDs On LPC2148 ARM 7 TDMIS Based Microcontroller
Blinking Of LEDs On LPC2148 ARM 7 TDMIS Based MicrocontrollerBlinking Of LEDs On LPC2148 ARM 7 TDMIS Based Microcontroller
Blinking Of LEDs On LPC2148 ARM 7 TDMIS Based Microcontroller
 
Register transfer language
Register transfer languageRegister transfer language
Register transfer language
 
Data cube computation
Data cube computationData cube computation
Data cube computation
 
Introduction to FPGAs
Introduction to FPGAsIntroduction to FPGAs
Introduction to FPGAs
 
Problem Solving
Problem Solving Problem Solving
Problem Solving
 
Introduction to NOSQL databases
Introduction to NOSQL databasesIntroduction to NOSQL databases
Introduction to NOSQL databases
 
BIM Data Mining Unit2 by Tekendra Nath Yogi
 BIM Data Mining Unit2 by Tekendra Nath Yogi BIM Data Mining Unit2 by Tekendra Nath Yogi
BIM Data Mining Unit2 by Tekendra Nath Yogi
 
Page Replacement
Page ReplacementPage Replacement
Page Replacement
 
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
Introduction to Ubuntu Edge Operating System (Ubuntu Touch)
 
Introduction to Embedded System I : Chapter 2 (3rd portion)
Introduction to Embedded System I : Chapter 2 (3rd portion)Introduction to Embedded System I : Chapter 2 (3rd portion)
Introduction to Embedded System I : Chapter 2 (3rd portion)
 
Indexing structure for files
Indexing structure for filesIndexing structure for files
Indexing structure for files
 
Internet of Things - module 1
Internet of Things -  module 1Internet of Things -  module 1
Internet of Things - module 1
 
Data in Motion vs Data at Rest
Data in Motion vs Data at RestData in Motion vs Data at Rest
Data in Motion vs Data at Rest
 
ARM CORTEX M3 PPT
ARM CORTEX M3 PPTARM CORTEX M3 PPT
ARM CORTEX M3 PPT
 
Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)
 
Basic interfacing of LEDs
Basic interfacing of LEDsBasic interfacing of LEDs
Basic interfacing of LEDs
 

Destaque

Chapter 3.1
Chapter 3.1Chapter 3.1
Chapter 3.1
sotlsoc
 
Basics in algorithms and data structure
Basics in algorithms and data structure Basics in algorithms and data structure
Basics in algorithms and data structure
Eman magdy
 
Chapter 7.4
Chapter 7.4Chapter 7.4
Chapter 7.4
sotlsoc
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulation
Sara Corpuz
 

Destaque (15)

Webpage Visual Design and Online Prototype
Webpage Visual Design and Online PrototypeWebpage Visual Design and Online Prototype
Webpage Visual Design and Online Prototype
 
Chapter 3.1
Chapter 3.1Chapter 3.1
Chapter 3.1
 
Basics in algorithms and data structure
Basics in algorithms and data structure Basics in algorithms and data structure
Basics in algorithms and data structure
 
Chapter 7.4
Chapter 7.4Chapter 7.4
Chapter 7.4
 
Logic Formulation 2
Logic Formulation 2Logic Formulation 2
Logic Formulation 2
 
Chap 2(const var-datatype)
Chap 2(const var-datatype)Chap 2(const var-datatype)
Chap 2(const var-datatype)
 
2. electric field calculation
2. electric field calculation2. electric field calculation
2. electric field calculation
 
Digital Logic
Digital LogicDigital Logic
Digital Logic
 
Problem Solving with Algorithms and Data Structure - Lists
Problem Solving with Algorithms and Data Structure - ListsProblem Solving with Algorithms and Data Structure - Lists
Problem Solving with Algorithms and Data Structure - Lists
 
Problem Solving with Algorithms and Data Structure - Graphs
Problem Solving with Algorithms and Data Structure - GraphsProblem Solving with Algorithms and Data Structure - Graphs
Problem Solving with Algorithms and Data Structure - Graphs
 
Komunikasyon
KomunikasyonKomunikasyon
Komunikasyon
 
Data Structure & Algorithms | Computer Science
Data Structure & Algorithms | Computer ScienceData Structure & Algorithms | Computer Science
Data Structure & Algorithms | Computer Science
 
Data structures and algorithms
Data structures and algorithmsData structures and algorithms
Data structures and algorithms
 
មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++មេរៀនៈ Data Structure and Algorithm in C/C++
មេរៀនៈ Data Structure and Algorithm in C/C++
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulation
 

Semelhante a Data Structure Basics

Introduction to Data Structure
Introduction to Data StructureIntroduction to Data Structure
Introduction to Data Structure
Jazz Jinia Bhowmik
 

Semelhante a Data Structure Basics (20)

2.02.Data_structures_and_algorithms (1).pptx
2.02.Data_structures_and_algorithms (1).pptx2.02.Data_structures_and_algorithms (1).pptx
2.02.Data_structures_and_algorithms (1).pptx
 
DS_PPT.ppt
DS_PPT.pptDS_PPT.ppt
DS_PPT.ppt
 
Data structures and algorithms short note (version 14).pd
Data structures and algorithms short note (version 14).pdData structures and algorithms short note (version 14).pd
Data structures and algorithms short note (version 14).pd
 
DATA STRUCTURES - SHORT NOTES
DATA STRUCTURES - SHORT NOTESDATA STRUCTURES - SHORT NOTES
DATA STRUCTURES - SHORT NOTES
 
Introduction to Data Structure.pptx
Introduction to Data Structure.pptxIntroduction to Data Structure.pptx
Introduction to Data Structure.pptx
 
UNITIII LDS.pdf
UNITIII LDS.pdfUNITIII LDS.pdf
UNITIII LDS.pdf
 
Introduction to data structure ppt
Introduction to data structure pptIntroduction to data structure ppt
Introduction to data structure ppt
 
Chapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdfChapter 1 Introduction to Data Structures and Algorithms.pdf
Chapter 1 Introduction to Data Structures and Algorithms.pdf
 
Datastructures using c++
Datastructures using c++Datastructures using c++
Datastructures using c++
 
DS Module 1.pptx
DS Module 1.pptxDS Module 1.pptx
DS Module 1.pptx
 
Introduction to Data Structures .
Introduction to Data Structures        .Introduction to Data Structures        .
Introduction to Data Structures .
 
DATA STRUCTURE IN C LANGUAGE
DATA STRUCTURE IN C LANGUAGEDATA STRUCTURE IN C LANGUAGE
DATA STRUCTURE IN C LANGUAGE
 
DS Module 1.pptx
DS Module 1.pptxDS Module 1.pptx
DS Module 1.pptx
 
Data structure (basics)
Data structure (basics)Data structure (basics)
Data structure (basics)
 
Data Structures & Recursion-Introduction.pdf
Data Structures & Recursion-Introduction.pdfData Structures & Recursion-Introduction.pdf
Data Structures & Recursion-Introduction.pdf
 
Data structure
Data structureData structure
Data structure
 
Data Structures and algoithms Unit - 1.pptx
Data Structures and algoithms Unit - 1.pptxData Structures and algoithms Unit - 1.pptx
Data Structures and algoithms Unit - 1.pptx
 
DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS DATA STRUCTURE AND ALGORITHMS
DATA STRUCTURE AND ALGORITHMS
 
Introduction to Data Structure
Introduction to Data StructureIntroduction to Data Structure
Introduction to Data Structure
 
2. Introduction to Data Structure.pdf
2. Introduction to Data Structure.pdf2. Introduction to Data Structure.pdf
2. Introduction to Data Structure.pdf
 

Mais de Shakila Mahjabin

Mais de Shakila Mahjabin (15)

Computer processing
Computer processingComputer processing
Computer processing
 
Arrays in CPP
Arrays in CPPArrays in CPP
Arrays in CPP
 
CSC 433 Sample normalization SQL Question
CSC 433 Sample normalization SQL QuestionCSC 433 Sample normalization SQL Question
CSC 433 Sample normalization SQL Question
 
SQL : introduction
SQL : introductionSQL : introduction
SQL : introduction
 
Normalization
NormalizationNormalization
Normalization
 
Solution of Erds
Solution of ErdsSolution of Erds
Solution of Erds
 
Entity Relationship Diagram
Entity Relationship DiagramEntity Relationship Diagram
Entity Relationship Diagram
 
Ch1- Introduction to dbms
Ch1- Introduction to dbmsCh1- Introduction to dbms
Ch1- Introduction to dbms
 
Stack and queue
Stack and queueStack and queue
Stack and queue
 
Algo analysis
Algo analysisAlgo analysis
Algo analysis
 
Merge sort and quick sort
Merge sort and quick sortMerge sort and quick sort
Merge sort and quick sort
 
Codes on structures
Codes on structuresCodes on structures
Codes on structures
 
Arrays
ArraysArrays
Arrays
 
array, function, pointer, pattern matching
array, function, pointer, pattern matchingarray, function, pointer, pattern matching
array, function, pointer, pattern matching
 
String operation
String operationString operation
String operation
 

Último

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 

Último (20)

Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 

Data Structure Basics

  • 2. 2 Data Structures and Algorithms Data Structure ©SMT, Faculty, CSE, IUBAT In computer science, a data structure is a particular way of storing and organizing data in a computer’s memory so that it can be used efficiently. Data may be organized in many different ways. The logical or mathematical model of a particular organization of data is called a data structure.
  • 3. 3 Data Structures and Algorithms Types Categories of Data Structure: The data structure can be classified in to major types: • Linear Data Structure • Non-linear Data Structure 1. Linear Data Structure: A data structure is said to be linear if its elements form any sequence. There are basically two ways of representing such linear structure in memory. a) One way is to have the linear relationships between the elements represented by means of sequential memory location. These linear structures are called arrays. b) The other way is to have the linear relationship between the elements represented by means of pointers or links. These linear structures are called linked lists. ©SMT, Faculty, CSE, IUBAT
  • 4. 4 Data Structures and Algorithms The common examples of linear data structure are- Arrays, Queues, Stacks, Linked lists 2. Non-linear Data Structure: This structure is mainly used to represent data containing a hierarchical relationship between elements. e.g. graphs, family trees and table of contents. Types ©SMT, Faculty, CSE, IUBAT
  • 5. 5 Data Structures and Algorithms Memory Allocation ©SMT, Faculty, CSE, IUBAT Memory allocation can be classified as either  Contiguous  Linked  Indexed Prototypical examples:  Contiguous allocation: arrays  Linked allocation: linked lists
  • 6. 6 Data Structures and Algorithms Contiguous Allocation ©SMT, Faculty, CSE, IUBAT An array stores n objects in a single contiguous space of memory Unfortunately, if more memory is required, a request for new memory usually requires copying all information into the new memory  In general, you cannot request for the operating system to allocate to you the next n memory locations
  • 7. 7 Data Structures and Algorithms Linked Allocation ©SMT, Faculty, CSE, IUBAT Linked storage such as a linked list associates two pieces of data with each item being stored:  The object itself, and  A reference to the next item  In C++ that reference is the address of the next node
  • 8. 8 Data Structures and Algorithms Linked Allocation ©SMT, Faculty, CSE, IUBAT This is a class describing such a node template <typename Type> class Node { private: Type element; Node *next_node; public: // ... };
  • 9. 9 Data Structures and Algorithms Linked Allocation ©SMT, Faculty, CSE, IUBAT The operations on this node must include:  Constructing a new node  Accessing (retrieving) the value  Accessing the next pointer Node( const Type& = Type(), Node* = nullptr ); Type retrieve() const; Node *next() const; Pointing to nothing has been represented as: C NULL Java/C# null C++ (old) 0 C++ (new) nullptr Symbolically Ø
  • 10. 10 Data Structures and Algorithms Linked Allocation ©SMT, Faculty, CSE, IUBAT For a linked list, however, we also require an object which links to the first object The actual linked list class must store two pointers  A head and tail: Node *head; Node *tail; Optionally, we can also keep a count int count; The next_node of the last node is assigned nullptr
  • 11. 11 Data Structures and Algorithms Linked Allocation ©SMT, Faculty, CSE, IUBAT The class structure would be: template <typename Type> class List { private: Node<Type> *head; Node<Type> *tail; int count; public: // constructor(s)... // accessor(s)... // mutator(s)... };
  • 12. 12 Data Structures and Algorithms Indexed Allocation ©SMT, Faculty, CSE, IUBAT With indexed allocation, an array of pointers (possibly NULL) link to a sequence of allocated memory locations Used in the C++ standard template library Computer engineering students will see indexed allocation in their operating systems course
  • 13. 13 Data Structures and Algorithms Indexed Allocation ©SMT, Faculty, CSE, IUBAT Matrices can be implemented using indexed allocation: 1 2 3 4 5 6      
  • 14. 14 Data Structures and Algorithms Indexed Allocation ©SMT, Faculty, CSE, IUBAT Matrices can be implemented using indexed allocation  Most implementations of matrices (or higher-dimensional arrays) use indices pointing into a single contiguous block of memory Row-major order Column-major order C, Python Matlab, Fortran 1 2 3 4 5 6      
  • 15. 15 Data Structures and Algorithms Data Structure Formats ©SMT, Faculty, CSE, IUBAT We will look at some variations or hybrids of these memory allocations including:  Trees  Graphs  Array  Linked List  Stack  Queue
  • 16. 16 Data Structures and Algorithms Trees ©SMT, Faculty, CSE, IUBAT The linked list can be used to store linearly ordered data  What if we have multiple next pointers? A rooted tree (weeks 4-6) is similar to a linked list but with multiple next pointers
  • 17. 17 Data Structures and Algorithms Trees ©SMT, Faculty, CSE, IUBAT Data frequently contain a hierarchical relationship between various elements. The data structure which reflects this relationship is called a rooted tree graph or, simply, a tree. A tree is a variation on a linked list:  Each node points to an arbitrary number of subsequent nodes  Useful for storing hierarchical data 2.2.2.2
  • 18. 18 Data Structures and Algorithms Graphs ©SMT, Faculty, CSE, IUBAT Suppose we allow arbitrary relations between any two objects in a container  Given n objects, there are n2 – n possible relations  If we allow symmetry, this reduces to  For example, consider the network 2 2 n n 2.2.2.2 Data sometimes contains a relationship between pairs of elements which is not necessarily hierarchical in nature, e.g. an airline flights only between the cities connected by lines. This data structure is called Graph.
  • 19. 19 Data Structures and Algorithms Arrays ©SMT, Faculty, CSE, IUBAT 2.2.2.2 The simplest type of data structure is a linear (or one dimensional) array. A list of a finite number n of similar data referenced respectively by a set of n consecutive numbers, usually 1, 2, 3 . . . . . . . n. if we choose the name A for the array, then the elements of A are denoted by subscript notation A 1 , A 2 , A 3 . . . . A n or by the parenthesis notation A (1), A (2), A (3) . . . . . . A (n) or by the bracket notation A [1], A [2], A [3] . . . . . . A [n] Example: A linear array A[8] consisting of numbers is pictured in following figure
  • 20. 20 Data Structures and Algorithms Linked List ©SMT, Faculty, CSE, IUBAT A linked list, or one way list is a linear collection of data elements, called nodes, where the linear order is given by means of pointers. Each node is divided into two parts: The first part contains the information of the element/node The second part contains the address of the next node (link /next pointer field) in the list. There is a special pointer Start/List contains the address of first node in the list. If this special pointer contains null, means that List is empty.
  • 21. 21 Data Structures and Algorithms Array of Linked Lists ©SMT, Faculty, CSE, IUBAT Suppose we allow arbitrary relations between any two objects in a container  Alternatively, we could use a hybrid: an array of linked lists A B C D E F G H I J K L 2.2.2.2
  • 22. 22 Data Structures and Algorithms Queue and Stack ©SMT, Faculty, CSE, IUBAT Queue: A queue, also called FIFO system, is a linear list in which deletions can take place only at one end of the list, the Font of the list and insertion can take place only at the other end Rear. Stack: It is an ordered group of homogeneous items of elements. Elements are added to and removed from the top of the stack (the most recently added items are at the top of the stack). The last element to be added is the first to be removed (LIFO: Last In, First Out).
  • 23. 23 Data Structures and Algorithms Data Structures Operations ©SMT, Faculty, CSE, IUBAT The data appearing in our data structures are processed by means of certain operations. In fact, the particular data structure that one chooses for a given situation depends largely in the frequency with which specific operations are performed. The following four operations play a major role in this text:  Traversing: accessing each record/node exactly once so that certain items in the record may be processed. (This accessing and processing is sometimes called “visiting” the record.)
  • 24. 24 Data Structures and Algorithms Data Structures Operations ©SMT, Faculty, CSE, IUBAT  Searching: Finding the location of the desired node with a given key value, or finding the locations of all such nodes which satisfy one or more conditions.  Inserting: Adding a new node/record to the structure.  Deleting: Removing a node/record from the structure.