Upcoming SlideShare
×

# Ds 1

1,303 views
1,042 views

Published on

4 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
1,303
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
0
0
Likes
4
Embeds 0
No embeds

No notes for slide
• Lower Bound and Upper Bound to denote the first element number and the last element number respectively
• Lower Bound and Upper Bound to denote the first element number and the last element number respectively
• Lower Bound and Upper Bound to denote the first element number and the last element number respectively
• ### Ds 1

1. 1. Introduction to Data StructuresObjectivesIn this lesson, you will learn to: Classify and list the types of data structures List the types of arrays List the types of linked lists Implement nodes insertion on single linked list ©NIIT Introduction to Data Structures/Lesson 1/Slide 1 of 34
2. 2. Introduction to Data Structures Data Structures Data Structure is : A collection of data items or objects Relationships among data items or objects Collection of functions or operations that can be applied to that data ©NIIT Introduction to Data Structures/Lesson 1/Slide 2 of 34
3. 3. Introduction to Data Structures Types and Classification of Data Structures Some of the commonly used data structures are: Strings Arrays Linked Lists Stacks Queues Binary trees Graphs ©NIIT Introduction to Data Structures/Lesson 1/Slide 3 of 34
4. 4. Introduction to Data Structures Types and Classifications of Data Structures (Contd..) Data structures can be classified into: Static data structures (one-dimensional array, two- dimensional array, and multi-dimensional array) Dynamic data structures (linked lists, binary trees, and graphs) Elastic data structures (stack, queue) Data structures can also be classified based on the linkages between the different structures: Linear Structures (arrays and linked lists) Hierarchical Structures (binary trees) ©NIIT Introduction to Data Structures/Lesson 1/Slide 4 of 34
5. 5. Introduction to Data Structures Types and Classification of Data Structures (Contd..) Network Structures (graphs) ©NIIT Introduction to Data Structures/Lesson 1/Slide 5 of 34
6. 6. Introduction to Data Structures Just a Minute… 2. An array is an example of dynamic data structure. (T/ F) 3. Queues works on a concept of FIFO. (T/F) 4. ______________________ are called terminal nodes. ©NIIT Introduction to Data Structures/Lesson 1/Slide 6 of 34
7. 7. Introduction to Data Structures Types of Arrays Arrays are the simplest type of data structures Arrays are of two types: One-dimensional arrays Multi-dimensional arrays ©NIIT Introduction to Data Structures/Lesson 1/Slide 7 of 34
8. 8. Introduction to Data Structures One-dimensional Arrays Example: Let NOFDAYS be an array of 12 element representing total number of days in a month. int NOFDAYS[12]; Then, NOFDAYS[0] = 31 NOFDAYS[1] = 28 NOFDAYS[2] = 31 and so on... The array will be represented as shown in the following figure: 31 28 31 30 31 30 NOFDAYS[0] NOFDAYS[1] NOFDAYS[2]… ©NIIT Introduction to Data Structures/Lesson 1/Slide 8 of 34
9. 9. Introduction to Data Structures Multi-dimensional Arrays Programming languages like PASCAL, COBOL, C, and C++ allow declaration of multidimensional arrays. These can be stored in the memory in the following two ways: Row-major order: The elements are listed so that the last element varies first (more rapidly). Then, the second last element varies next (less rapidly) and so on. Column-major order : The elements are listed so that the first element varies more rapidly then, the second element varies next and so on. ©NIIT Introduction to Data Structures/Lesson 1/Slide 9 of 34
10. 10. Introduction to Data Structures Array Referencing Elements of an array are stored in contiguous locations To reference an element in the array we need to know only the address of the starting element The first element’s address can be denoted as the base address of the array The first element number is known as Lower Bound The last element number is known as Upper Bound ©NIIT Introduction to Data Structures/Lesson 1/Slide 10 of 34
11. 11. Introduction to Data Structures Array Referencing (Contd..) From the base address, the computer will calculate the address of any element with the formula: BA+LEN*(ENUM- FNUM)=Address of the required element Where, BA is the Base Address LEN is the length per element ENUM is the element Number FNUM is the first element number ©NIIT Introduction to Data Structures/Lesson 1/Slide 11 of 34
12. 12. Introduction to Data Structures Multi-dimensional Arrays (Contd..) (1, 1) (1, 1) (2, 1) (1, 2) Column 1 (3, 1) (1, 3) Row 1 (1, 2) (1, 4) (2, 2) Column 2 (2, 1) (3, 2) (2, 2) (1, 3) (2, 3) Row 2 (2, 3) (2, 4) Column 3 (3, 3) (3, 1) (1, 4) (3, 2) (2, 4) (3, 3) Row 3 Column 4 (3, 4) (3, 4) Column‑major order Row‑major order ©NIIT Introduction to Data Structures/Lesson 1/Slide 12 of 34
13. 13. Introduction to Data Structures Just a Minute… 2. Find the address of numbers [13] and numbers [40] of the array numbers [40] assuming a Base address of 250 and length of each element as 4. 3. Matrix is an example of _________ dimensional array. 4. How many types of arrays are available? ©NIIT Introduction to Data Structures/Lesson 1/Slide 13 of 34
14. 14. Introduction to Data Structures Array Complexities Inserting and deleting from array involves complexities. If an element is deleted from the middle of an array, then that element remains empty unless all the names in the succeeding elements are moved back by one element position to occupy the empty element. If an element is inserted in the middle of an array, all names have to be moved forward by one element position. ©NIIT Introduction to Data Structures/Lesson 1/Slide 14 of 34
15. 15. Introduction to Data Structures Linked Lists A linked list is a chain of objects in which each object consists of the data and a pointer that stores the address (link) of the next logical object in the list. The main advantages of linked lists are: Memory is allocated whenever required. Inserting to and deleting from linked lists can be handled efficiently without having to restructure the list. ©NIIT Introduction to Data Structures/Lesson 1/Slide 15 of 34
16. 16. Introduction to Data Structures Types of Linked Lists Linked lists can be of different types: Single linked list Circular linked list Double linked list ©NIIT Introduction to Data Structures/Lesson 1/Slide 16 of 34
17. 17. Introduction to Data Structures Single Linked List Is a chain of structures in which each structure consists of data and a pointer to the address of next subsequent node START Data LINK Data LINK Data LINK Data LINK NULL ©NIIT Introduction to Data Structures/Lesson 1/Slide 17 of 34
18. 18. Introduction to Data Structures Circular Linked List Has the START pointer pointing to the first node and the last pointer also pointing to the first node START Data LINK Data LINK Data LINK Data LINK ©NIIT Introduction to Data Structures/Lesson 1/Slide 18 of 34
19. 19. Introduction to Data Structures Double Linked List Has 3 parts: the INFO, NEXT pointer, and PREV pointer Is also called a two-way list LAST START NULL PREV Data NEXT PREV Data NEXT NULL PREV Data NEXT ©NIIT Introduction to Data Structures/Lesson 1/Slide 19 of 34
20. 20. Introduction to Data Structures Operations on Lists Are: Insertion Traversal Deletion Modification Sorting ©NIIT Introduction to Data Structures/Lesson 1/Slide 20 of 34
21. 21. Introduction to Data Structures Some Common Applications of Lists Are: Word processing applications Index maintenance in a file-based database package Maintenance of linked lists for data files that have read-write overhead ©NIIT Introduction to Data Structures/Lesson 1/Slide 21 of 34
22. 22. Introduction to Data Structures Complexities in Lists Are: The START pointer, pointing to the first node, cannot be moved as it depicts the starting point of the list. ©NIIT Introduction to Data Structures/Lesson 1/Slide 22 of 34
23. 23. Introduction to Data Structures Single Linked List The three basic classes that are required to make a complete linked list are as follows: A class to represent the DATA or INFO part of the node. The Node class, which contains an object of the built-in data class called INFO and a pointer to a Node object called NEXT. The List class that will contain the start pointer to a Node object. ©NIIT Introduction to Data Structures/Lesson 1/Slide 23 of 34
24. 24. Introduction to Data Structures Insertion Of Nodes In A Linked List Insertion involves adding a new node to an existing linked list or creating a new linked list if one does not already exist. Insertion can be performed: At the beginning of the list In the middle of the list At the end of the list ©NIIT Introduction to Data Structures/Lesson 1/Slide 24 of 34
25. 25. Introduction to Data Structures Inserting a Node at the Beginning of a Linked List Existing Links on the list Links after inserting the new node START INFO NEXT INFO NEXT INFO NEXT NULL INFO NEXT ©NIIT Introduction to Data Structures/Lesson 1/Slide 25 of 34
26. 26. Introduction to Data Structures Inserting a Node at the Beginning of a Linked List (Contd..) Requires to: Check whether or not the list exists Check whether the user supplied string is lesser than the INFO in the first node ©NIIT Introduction to Data Structures/Lesson 1/Slide 26 of 34
27. 27. Introduction to Data Structures Inserting a Node in the Middle or at the End of a Linked List prev START curr Ann NEXT Tom NEXT NEXT NULL Existing Links on the list NEXT Links after inserting the new node ©NIIT Introduction to Data Structures/Lesson 1/Slide 27 of 34
28. 28. Introduction to Data Structures Inserting a Node in the Middle or at the End of a Linked List (Contd..) Requires to: Allocate the memory for the new node. Position the pointer prev on the node after which the new node is to be inserted and the pointer curr to be positioned on the node before which the new node is to be inserted. Complete the link by making the NEXT of the previous node point to the new node. ©NIIT Introduction to Data Structures/Lesson 1/Slide 28 of 34
29. 29. Introduction to Data Structures Problem Statement 1.D.1 Create an application that accepts the names of an unknown number of customers and displays them in alphabetical order. ©NIIT Introduction to Data Structures/Lesson 1/Slide 29 of 34
30. 30. Introduction to Data StructuresSummaryIn this lesson, you learned that: Data structures are a collection of data values, the relationships among them, and the functions or operations that can be applied to the data. Some of the commonly used data structures are: Strings Arrays Linked lists Stacks Queues ©NIIT Introduction to Data Structures/Lesson 1/Slide 30 of 34
31. 31. Introduction to Data StructuresSummary (Contd..) Binary trees Graphs Data structures can be categorized as: Static data structures (multi-dimensional arrays) Dynamic data structures (linked lists, binary trees graphs) Elastic data structures (stack, queue) The array is the simplest type of data structure. The elements of an array are stored in contiguous locations. ©NIIT Introduction to Data Structures/Lesson 1/Slide 31 of 34
32. 32. Introduction to Data StructuresSummary (Contd..) Arrays are of two types—One-dimensional array (also called linear array) and multi-dimensional arrays. Arrays will be stored in memory by the programming language in one of the two ways available: Column-major order Row-major order Linked lists can be of different types: Single linked list Circular linked list Double linked list ©NIIT Introduction to Data Structures/Lesson 1/Slide 32 of 34
33. 33. Introduction to Data StructuresSummary (Contd..) The different operations that can be performed on a linked list are: Insertion Traversal Modification Deletion The three classes, which make a complete linked list are as follows: A class to represent the data or INFO part of the node The Node class, which will contain an object of the built-in data class called INFO and a pointer to a Node object called NEXT ©NIIT Introduction to Data Structures/Lesson 1/Slide 33 of 34
34. 34. Introduction to Data StructuresSummary (Contd.) The List class that will contain the starting pointer to a Node object The insertion of a node can be performed at three different levels: At the beginning of the list In the middle of the list At the end of the list ©NIIT Introduction to Data Structures/Lesson 1/Slide 34 of 34