SlideShare a Scribd company logo
Chapter – 2 The Linked List
Asmelash Girmay
Department of Information Technology
Data Structures
2.1 Introduction
• If a memory is allocated for a variable during the compilation (i.e. before
execution) of a program, then it is fixed and cannot be changed.
• For Example: an array A[20] is declared with 20 elements, then the allocated
memory is fixed and cannot decrease or increase SIZE of the array if required.
• So we have to adopt an alternative strategy to allocate memory only when it is
required.
• There is a special data structure called linked list that provides a more flexible
storage system and it does not require the use of arrays.
IT3201 Data Structures 22018-10-30
2.2 Definition of Linked List
• A linked list is a linear collection of specially designed data elements, called nodes, linked to one
another by means of pointers.
• Each node is divided into two parts: the first part contains the information of the element, and
the second part contains the address part of the next node in the linked list.
• Address part of the node is also called linked or next field.
• Note:
• The arrow is drown from the address part to the next node.
• The next pointer of the last node contains a special value, called the NULL pointer, which does not point to
any address of the node.
• i.e. NULL pointer indicates the end of the linked list.
• START pointer will hold the address of the first node in the list START=NULL if there is no list (i.e. NULL list or
empty list).
IT3201 Data Structures 32018-10-30
2.2 Definition of Linked List …
IT3201 Data Structures 42018-10-30
2.3 Representation of Linked List
• Suppose we want to store a list of integer numbers using linked list. Then it can
be schematically represented as:
• The linear linked list can be represented in memory with the following declaration.
IT3201 Data Structures 52018-10-30
2.4 Advantages and Disadvantages
• Advantages:
1. Are dynamic data structure: i.e., they can grow or shrink during the execution of the program.
2. Efficient memory utilization: In linked list (or dynamic) representation, memory is not pre-allocated.
• Memory is allocated whenever it is required. And it is deallocated (or removed) when it is not needed.
3. Insertion and deletion are easier and efficient. Linked list provides flexibility in inserting a data item
at a specified position and deletion of a data item from the given position.
4. Many complex applications can be easily carried out with linked list.
• Disadvantages:
1. More memory: to store an integer number, a node with integer data and address field is allocated.
That is more memory space is needed.
2. Access to an arbitrary data item is little bit cumbersome and also time consuming.
IT3201 Data Structures 62018-10-30
2.5 Operations on Linked List
• The primitive operations performed on the linked list are as follows
1. Creation
2. Insertion
3. Deletion
4. Traversing
5. Searching
6. Concatenation
1) Creation operation is used to create a linked list.
• Once a linked list is created with one node, insertion operation can be used to
add more elements in a node.
IT3201 Data Structures 72018-10-30
2.5 Operations on Linked List …
2) Insertion operation is used to insert a new node at any specified
location in the linked list. A new node may be inserted.
(a) At the beginning of the linked list
(b) At the end of the linked list
(c) At any specified position in between in a linked list
3) Deletion operation is used to delete an item (or node) from the
linked list. A node may be deleted from the
(a) Beginning of a linked list
(b) End of a linked list
(c) Specified location of the linked list
IT3201 Data Structures 82018-10-30
2.5 Operations on Linked List …
4) Traversing is the process of going through all the nodes from one end to
another end of a linked list.
• In a singly linked list we can visit from left to right, forward traversing, nodes only.
• But in doubly linked list forward and backward traversing is possible.
5) Concatenation is the process of appending the second list to the end of
the first list.
• Consider a list A having n nodes and B with m nodes.
• Then the operation concatenation will place the 1st node of B in the (n+1)th node in
A.
• After concatenation A will contain (n+m) nodes
IT3201 Data Structures 92018-10-30
2.6 Type of Linked List
• Basically we can divide the linked list into the following three types in
the order in which they (or node) are arranged.
1. Singly linked list
2. Doubly linked list
3. Circular linked list
IT3201 Data Structures 102018-10-30
2.6.1 Singly Linked List [SLL]
• All the nodes in a singly linked list are arranged sequentially linked by a pointer.
• A singly linked list can grow or shrink, because it is a dynamic data structure.
IT3201 Data Structures 112018-10-30
2.6.1 Singly Linked List…
IT3201 Data Structures 122018-10-30
2.6.1 Singly Linked List…
• Algorithm for Inserting a Node
• Insertion of New Node Suppose START is the first position in linked list.
• Let DATA be the element to be inserted in the new node.
• POS is the position where the new node is to be inserted.
• TEMP is a temporary pointer to hold the node address.
IT3201 Data Structures 132018-10-30
2.6.1 Singly Linked List…
• Algorithm for Inserting a Node…
IT3201 Data Structures 142018-10-30
2.6.1 Singly Linked List…
• Algorithm for Inserting a Node…
IT3201 Data Structures 152018-10-30
Insert a Node at the end
1. Input DATA to be inserted
2. Create a NewNode
3. NewNode → DATA = DATA
4. NewNode → Next = NULL
5. If (SATRT equal to NULL)
(a) START = NewNode
6. Else
(a) TEMP = START
(b) While (TEMP → Next not equal to NULL)
(i) TEMP = TEMP → Next
7. TEMP → Next = NewNode
8. Exit
2.6.1 Singly Linked List…
• Algorithm for Inserting a Node…
IT3201 Data Structures 162018-10-30
2.6.1 Singly Linked List…
• Algorithm for Deleting a Node
IT3201 Data Structures 172018-10-30
2.6.1 Singly Linked List…
• Algorithm for Deleting a Node…
• Suppose START is the first position in linked list.
Let DATA be the element to be deleted.
TEMP, HOLD is a temporary pointer to hold the
node address.
IT3201 Data Structures 182018-10-30
2.6.1 Singly Linked List…
• Algorithm for searching a Node
• Suppose START is the address of the first node in the linked list and DATA is the information to be
searched. After searching, if the DATA is found, POS will contain the corresponding position in the
list.
IT3201 Data Structures 192018-10-30
2.6.1 Singly Linked List…
• Algorithm for Traversing the Linked List
• Suppose START is the address of the first node in the linked list.
• Following algorithm will visit all nodes from the START node to the end.
IT3201 Data Structures 202018-10-30
Implementation of Singly linked list – LAB#2
2.6.1 Applications SLL
• Singly linked list is used in:
• Implementation of dynamic Stacks
• Implementation of dynamic Queue
• Representation of polynomial functions
IT3201 Data Structures 212018-10-30
2.6.1 Applications SLL: Polynomial
• Different operations, such as addition, subtraction, division and multiplication of polynomials can
be performed using linked list.
• In this section, we discuss about polynomial addition using linked list.
• Consider two polynomials f(x) and g(x); it can be represented using linked list as follows in Fig.
IT3201 Data Structures 222018-10-30
2.6.2 Doubly Linked List [DLL]
• A doubly linked list is one in which all nodes are linked together by
multiple links which help in accessing both the successor (next) and
predecessor (previous) node for any arbitrary node within the list.
• Every nodes in the doubly linked list has three fields:
• Left Pointer, Right Pointer and DATA. The following fig. shows a typical doubly
linked list.
IT3201 Data Structures 232018-10-30
2.6.2 Doubly Linked List…
• LPoint will point to the node in the left side (or previous node) that is LPoint will
hold the address of the previous node.
• RPoint will point to the node in the right side (or next node) that is RPoint will
hold the address of the next node. DATA will store the information of the node.
IT3201 Data Structures 242018-10-30
2.6.2 Doubly Linked List Representation
• A node in the doubly linked list can be represented in memory with the following
declarations.
• All the operations performed on singly linked list can also be performed on doubly linked
list. See the ff. insertion and deletion of nodes.
IT3201 Data Structures 252018-10-30
2.6.2 Doubly Linked List Representation…
IT3201 Data Structures 262018-10-30
Implementation of Doubly linked list – LAB#3
2.6.2 Doubly Linked List Algorithms
• Algorithm for Inserting a Node
• Suppose START is the first position in linked list.
• Let DATA be the element to be inserted in the new node.
• POS is the position where the NewNode is to be inserted.
• TEMP is a temporary pointer to hold the node address.
IT3201 Data Structures 272018-10-30
2.6.2 Doubly Linked List Algorithms…
• Algorithm for Inserting a Node…
IT3201 Data Structures 282018-10-30
2.6.2 Doubly Linked List Algorithms…
• Algorithm for Deleting a Node
• Suppose START is the address of the first node in the linked list.
• Let POS is the position of the node to be deleted.
• TEMP is the temporary pointer to hold the address of the node.
• After deletion, DATA will contain the information on the deleted node.
IT3201 Data Structures 292018-10-30
2.6.2 Doubly Linked List Algorithms…
• Algorithm for Deleting a Node…
IT3201 Data Structures 302018-10-30
2.6.3 Circular Linked List [CLL]
• A circular linked list is one, which has no beginning and no end.
• A singly linked list can be made a circular linked list by simply storing the address
of the very first node in the linked field of the last node.
IT3201 Data Structures 312018-10-30
Implementation of Circular linked list – LAB#4
2.6.3 Circular Linked List …
• A circular doubly linked list has both the successor pointer and
predecessor pointer in circular manner as shown below.
IT3201 Data Structures 322018-10-30
Implementation of Circular linked list – LAB ASSIGN.
The End ☺
IT3201 Data Structures 332018-10-30

More Related Content

PDF
linked lists in data structures
PPTX
What is Link list? explained with animations
PPTX
Introduction to Data Structures and Linked List
PPTX
Linked list in Data Structure and Algorithm
PPTX
Ppt of operations on one way link list
PPT
Data Structure and Algorithms Linked List
PPT
Data Structures with C Linked List
PPT
Data Structures- Part7 linked lists
linked lists in data structures
What is Link list? explained with animations
Introduction to Data Structures and Linked List
Linked list in Data Structure and Algorithm
Ppt of operations on one way link list
Data Structure and Algorithms Linked List
Data Structures with C Linked List
Data Structures- Part7 linked lists

What's hot (20)

PPTX
Linked List
PPTX
Insertion in singly linked list
PPTX
linked list in data structure
PPTX
Deletion from single way linked list and search
PPTX
Linked Lists
PPTX
Linked list
PDF
Data structures
PPT
Unit 1 linked list
PPTX
Dsa module 1 ppt
PPT
Linkedlists
PPTX
Linked stacks and queues
PDF
Data structures Basics
DOC
2 marks- DS using python
DOCX
Ds important questions
PDF
Introduction of Data Structures and Algorithms by GOWRU BHARATH KUMAR
PPTX
Data structure and its types
PDF
01. introduction to data structures
PPT
Data structures using c
PPTX
Introduction to data structure
PPTX
Computer Science-Data Structures :Abstract DataType (ADT)
Linked List
Insertion in singly linked list
linked list in data structure
Deletion from single way linked list and search
Linked Lists
Linked list
Data structures
Unit 1 linked list
Dsa module 1 ppt
Linkedlists
Linked stacks and queues
Data structures Basics
2 marks- DS using python
Ds important questions
Introduction of Data Structures and Algorithms by GOWRU BHARATH KUMAR
Data structure and its types
01. introduction to data structures
Data structures using c
Introduction to data structure
Computer Science-Data Structures :Abstract DataType (ADT)
Ad

Similar to 02. the linked lists (1) (20)

PPT
lecture four of data structures :Linked List-ds.ppt
PPTX
linked list_MODULE 3.pptx ppt on the linked list
PPTX
Linked List Representation of a Linked List.pptx
DOCX
Link list assi
PPT
Data Structures 3
PDF
ds-lecture-4-171012041008 (1).pdf
PPTX
Linked list, Singly link list and its operations
PPTX
CH4.pptx
PPTX
UNIT 2LINKEDLISdddddddddddddddddddddddddddT.pptx
PPT
PPTX
Engineering.CSE.DataStructure.Linkedlist.notes
PDF
4. Linked list .pdf
PPTX
Linked list
PPTX
data structures lists operation of lists
PPTX
Linked lists linked lists vs Arrays.pptx
PDF
Unit 1_SLL and DLL.pdf
PDF
Unit 1_Single Linked List and Double Linked List.pdf
PPTX
DSL Unit 4 (Linked list) (PPT)SE3rd sem sppu.pptx
DOCX
Linked list.docx
PPTX
Linked list (1).pptx
lecture four of data structures :Linked List-ds.ppt
linked list_MODULE 3.pptx ppt on the linked list
Linked List Representation of a Linked List.pptx
Link list assi
Data Structures 3
ds-lecture-4-171012041008 (1).pdf
Linked list, Singly link list and its operations
CH4.pptx
UNIT 2LINKEDLISdddddddddddddddddddddddddddT.pptx
Engineering.CSE.DataStructure.Linkedlist.notes
4. Linked list .pdf
Linked list
data structures lists operation of lists
Linked lists linked lists vs Arrays.pptx
Unit 1_SLL and DLL.pdf
Unit 1_Single Linked List and Double Linked List.pdf
DSL Unit 4 (Linked list) (PPT)SE3rd sem sppu.pptx
Linked list.docx
Linked list (1).pptx
Ad

Recently uploaded (20)

PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
Introduction to Knowledge Engineering Part 1
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PPTX
Business Ppt On Nestle.pptx huunnnhhgfvu
PPTX
climate analysis of Dhaka ,Banglades.pptx
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
PDF
Lecture1 pattern recognition............
PDF
Galatica Smart Energy Infrastructure Startup Pitch Deck
PPT
Reliability_Chapter_ presentation 1221.5784
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PDF
Clinical guidelines as a resource for EBP(1).pdf
PPTX
Database Infoormation System (DBIS).pptx
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PDF
annual-report-2024-2025 original latest.
PPTX
Acceptance and paychological effects of mandatory extra coach I classes.pptx
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
Introduction to Knowledge Engineering Part 1
Data_Analytics_and_PowerBI_Presentation.pptx
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
Business Ppt On Nestle.pptx huunnnhhgfvu
climate analysis of Dhaka ,Banglades.pptx
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
Lecture1 pattern recognition............
Galatica Smart Energy Infrastructure Startup Pitch Deck
Reliability_Chapter_ presentation 1221.5784
Introduction-to-Cloud-ComputingFinal.pptx
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
Clinical guidelines as a resource for EBP(1).pdf
Database Infoormation System (DBIS).pptx
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
annual-report-2024-2025 original latest.
Acceptance and paychological effects of mandatory extra coach I classes.pptx

02. the linked lists (1)

  • 1. Chapter – 2 The Linked List Asmelash Girmay Department of Information Technology Data Structures
  • 2. 2.1 Introduction • If a memory is allocated for a variable during the compilation (i.e. before execution) of a program, then it is fixed and cannot be changed. • For Example: an array A[20] is declared with 20 elements, then the allocated memory is fixed and cannot decrease or increase SIZE of the array if required. • So we have to adopt an alternative strategy to allocate memory only when it is required. • There is a special data structure called linked list that provides a more flexible storage system and it does not require the use of arrays. IT3201 Data Structures 22018-10-30
  • 3. 2.2 Definition of Linked List • A linked list is a linear collection of specially designed data elements, called nodes, linked to one another by means of pointers. • Each node is divided into two parts: the first part contains the information of the element, and the second part contains the address part of the next node in the linked list. • Address part of the node is also called linked or next field. • Note: • The arrow is drown from the address part to the next node. • The next pointer of the last node contains a special value, called the NULL pointer, which does not point to any address of the node. • i.e. NULL pointer indicates the end of the linked list. • START pointer will hold the address of the first node in the list START=NULL if there is no list (i.e. NULL list or empty list). IT3201 Data Structures 32018-10-30
  • 4. 2.2 Definition of Linked List … IT3201 Data Structures 42018-10-30
  • 5. 2.3 Representation of Linked List • Suppose we want to store a list of integer numbers using linked list. Then it can be schematically represented as: • The linear linked list can be represented in memory with the following declaration. IT3201 Data Structures 52018-10-30
  • 6. 2.4 Advantages and Disadvantages • Advantages: 1. Are dynamic data structure: i.e., they can grow or shrink during the execution of the program. 2. Efficient memory utilization: In linked list (or dynamic) representation, memory is not pre-allocated. • Memory is allocated whenever it is required. And it is deallocated (or removed) when it is not needed. 3. Insertion and deletion are easier and efficient. Linked list provides flexibility in inserting a data item at a specified position and deletion of a data item from the given position. 4. Many complex applications can be easily carried out with linked list. • Disadvantages: 1. More memory: to store an integer number, a node with integer data and address field is allocated. That is more memory space is needed. 2. Access to an arbitrary data item is little bit cumbersome and also time consuming. IT3201 Data Structures 62018-10-30
  • 7. 2.5 Operations on Linked List • The primitive operations performed on the linked list are as follows 1. Creation 2. Insertion 3. Deletion 4. Traversing 5. Searching 6. Concatenation 1) Creation operation is used to create a linked list. • Once a linked list is created with one node, insertion operation can be used to add more elements in a node. IT3201 Data Structures 72018-10-30
  • 8. 2.5 Operations on Linked List … 2) Insertion operation is used to insert a new node at any specified location in the linked list. A new node may be inserted. (a) At the beginning of the linked list (b) At the end of the linked list (c) At any specified position in between in a linked list 3) Deletion operation is used to delete an item (or node) from the linked list. A node may be deleted from the (a) Beginning of a linked list (b) End of a linked list (c) Specified location of the linked list IT3201 Data Structures 82018-10-30
  • 9. 2.5 Operations on Linked List … 4) Traversing is the process of going through all the nodes from one end to another end of a linked list. • In a singly linked list we can visit from left to right, forward traversing, nodes only. • But in doubly linked list forward and backward traversing is possible. 5) Concatenation is the process of appending the second list to the end of the first list. • Consider a list A having n nodes and B with m nodes. • Then the operation concatenation will place the 1st node of B in the (n+1)th node in A. • After concatenation A will contain (n+m) nodes IT3201 Data Structures 92018-10-30
  • 10. 2.6 Type of Linked List • Basically we can divide the linked list into the following three types in the order in which they (or node) are arranged. 1. Singly linked list 2. Doubly linked list 3. Circular linked list IT3201 Data Structures 102018-10-30
  • 11. 2.6.1 Singly Linked List [SLL] • All the nodes in a singly linked list are arranged sequentially linked by a pointer. • A singly linked list can grow or shrink, because it is a dynamic data structure. IT3201 Data Structures 112018-10-30
  • 12. 2.6.1 Singly Linked List… IT3201 Data Structures 122018-10-30
  • 13. 2.6.1 Singly Linked List… • Algorithm for Inserting a Node • Insertion of New Node Suppose START is the first position in linked list. • Let DATA be the element to be inserted in the new node. • POS is the position where the new node is to be inserted. • TEMP is a temporary pointer to hold the node address. IT3201 Data Structures 132018-10-30
  • 14. 2.6.1 Singly Linked List… • Algorithm for Inserting a Node… IT3201 Data Structures 142018-10-30
  • 15. 2.6.1 Singly Linked List… • Algorithm for Inserting a Node… IT3201 Data Structures 152018-10-30 Insert a Node at the end 1. Input DATA to be inserted 2. Create a NewNode 3. NewNode → DATA = DATA 4. NewNode → Next = NULL 5. If (SATRT equal to NULL) (a) START = NewNode 6. Else (a) TEMP = START (b) While (TEMP → Next not equal to NULL) (i) TEMP = TEMP → Next 7. TEMP → Next = NewNode 8. Exit
  • 16. 2.6.1 Singly Linked List… • Algorithm for Inserting a Node… IT3201 Data Structures 162018-10-30
  • 17. 2.6.1 Singly Linked List… • Algorithm for Deleting a Node IT3201 Data Structures 172018-10-30
  • 18. 2.6.1 Singly Linked List… • Algorithm for Deleting a Node… • Suppose START is the first position in linked list. Let DATA be the element to be deleted. TEMP, HOLD is a temporary pointer to hold the node address. IT3201 Data Structures 182018-10-30
  • 19. 2.6.1 Singly Linked List… • Algorithm for searching a Node • Suppose START is the address of the first node in the linked list and DATA is the information to be searched. After searching, if the DATA is found, POS will contain the corresponding position in the list. IT3201 Data Structures 192018-10-30
  • 20. 2.6.1 Singly Linked List… • Algorithm for Traversing the Linked List • Suppose START is the address of the first node in the linked list. • Following algorithm will visit all nodes from the START node to the end. IT3201 Data Structures 202018-10-30 Implementation of Singly linked list – LAB#2
  • 21. 2.6.1 Applications SLL • Singly linked list is used in: • Implementation of dynamic Stacks • Implementation of dynamic Queue • Representation of polynomial functions IT3201 Data Structures 212018-10-30
  • 22. 2.6.1 Applications SLL: Polynomial • Different operations, such as addition, subtraction, division and multiplication of polynomials can be performed using linked list. • In this section, we discuss about polynomial addition using linked list. • Consider two polynomials f(x) and g(x); it can be represented using linked list as follows in Fig. IT3201 Data Structures 222018-10-30
  • 23. 2.6.2 Doubly Linked List [DLL] • A doubly linked list is one in which all nodes are linked together by multiple links which help in accessing both the successor (next) and predecessor (previous) node for any arbitrary node within the list. • Every nodes in the doubly linked list has three fields: • Left Pointer, Right Pointer and DATA. The following fig. shows a typical doubly linked list. IT3201 Data Structures 232018-10-30
  • 24. 2.6.2 Doubly Linked List… • LPoint will point to the node in the left side (or previous node) that is LPoint will hold the address of the previous node. • RPoint will point to the node in the right side (or next node) that is RPoint will hold the address of the next node. DATA will store the information of the node. IT3201 Data Structures 242018-10-30
  • 25. 2.6.2 Doubly Linked List Representation • A node in the doubly linked list can be represented in memory with the following declarations. • All the operations performed on singly linked list can also be performed on doubly linked list. See the ff. insertion and deletion of nodes. IT3201 Data Structures 252018-10-30
  • 26. 2.6.2 Doubly Linked List Representation… IT3201 Data Structures 262018-10-30 Implementation of Doubly linked list – LAB#3
  • 27. 2.6.2 Doubly Linked List Algorithms • Algorithm for Inserting a Node • Suppose START is the first position in linked list. • Let DATA be the element to be inserted in the new node. • POS is the position where the NewNode is to be inserted. • TEMP is a temporary pointer to hold the node address. IT3201 Data Structures 272018-10-30
  • 28. 2.6.2 Doubly Linked List Algorithms… • Algorithm for Inserting a Node… IT3201 Data Structures 282018-10-30
  • 29. 2.6.2 Doubly Linked List Algorithms… • Algorithm for Deleting a Node • Suppose START is the address of the first node in the linked list. • Let POS is the position of the node to be deleted. • TEMP is the temporary pointer to hold the address of the node. • After deletion, DATA will contain the information on the deleted node. IT3201 Data Structures 292018-10-30
  • 30. 2.6.2 Doubly Linked List Algorithms… • Algorithm for Deleting a Node… IT3201 Data Structures 302018-10-30
  • 31. 2.6.3 Circular Linked List [CLL] • A circular linked list is one, which has no beginning and no end. • A singly linked list can be made a circular linked list by simply storing the address of the very first node in the linked field of the last node. IT3201 Data Structures 312018-10-30 Implementation of Circular linked list – LAB#4
  • 32. 2.6.3 Circular Linked List … • A circular doubly linked list has both the successor pointer and predecessor pointer in circular manner as shown below. IT3201 Data Structures 322018-10-30 Implementation of Circular linked list – LAB ASSIGN.
  • 33. The End ☺ IT3201 Data Structures 332018-10-30