You are on page 1of 34

CS8391 / Data Structures Department of IT 2020-2021

CS8391 DATA STRUCTURES LTPC


30 0 3

UNIT I LINEAR DATA STRUCTURES – LIST 9

Abstract Data Types (ADTs) – List ADT – array-based implementation – linked list
implementation –singly linked lists- circularly linked lists- doubly-linked lists – applications of lists
–Polynomial Manipulation – All operations (Insertion, Deletion, Merge, Traversal).

UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES 9

Stack ADT – Operations - Applications - Evaluating arithmetic expressions- Conversion of Infix to


postfix expression - Queue ADT – Operations - Circular Queue – Priority Queue - deQueue –
applications of queues.

UNIT III NON LINEAR DATA STRUCTURES – TREES 9

Tree ADT – tree traversals - Binary Tree ADT – expression trees – applications of trees – binary
search tree ADT –Threaded Binary Trees- AVL Trees – B-Tree - B+ Tree - Heap – Applications of
heap.

UNIT IV NON LINEAR DATA STRUCTURES – GRAPHS 9

Definition – Representation of Graph – Types of graph - Breadth-first traversal - Depth-first


traversal – Topological Sort – Bi-connectivity – Cut vertex – Euler circuits – Applications of
graphs.

UNIT V SEARCHING, SORTING AND HASHING TECHNIQUES 9

Searching- Linear Search - Binary Search. Sorting - Bubble sort - Selection sort - Insertion sort -
Shell sort – Radix sort. Hashing- Hash Functions – Separate Chaining – Open Addressing –
Rehashing – Extendible Hashing.

Total = 45 Periods

TEXT BOOKS:
1. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C”, 2nd Edition, Pearson
Education, 1997.
2. Reema Thareja, “Data Structures Using C”, Oxford University Press, 2011

REFERENCES:
1. Thomas H. Cormen, Charles E. Leiserson, Ronald L.Rivest, Clifford Stein, “Introduction to
Algorithms", Second Edition, Mcgraw Hill, 2002.
2. Aho, Hopcroft and Ullman, “Data Structures and Algorithms”, Pearson Education,1983.
3. Stephen G. Kochan, “Programming in C”, 3rd edition, Pearson Ed.,
4. Ellis Horowitz, Satraj Sahni, Susan Anderson- Freed, “Fundamentals of Data Structures in C”,
Second Edition, University Press, 2008.

St. Joseph’s Institute of Technology 1


CS8391 / Data Structures Department of IT 2020-2021
COURSE OUTCOMES

On completion of this course, the students will be


C203.1 To understand the concept of ADT’s and introduction to linear data structures

C203.2 To learn linear data structures - stacks and queues.

C203.3 To understand non linear data structures - Trees

C203.4 To understand non linear data structures - Graphs

C203.5 To understand sorting, searching and hashing algorithms

MAPPING BETWEEN CO AND PO, PSO WITH CORRELATION LEVEL 1/2/3

Sub.Code PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3 PSO4

C203.1 2 2 1 1 0 1 0 0 2 1 1 2 2 2 1 1
C203.2 2 2 2 1 0 0 0 1 1 1 1 2 2 2 2 1
C203.3 2 2 2 2 1 1 1 0 2 1 2 2 2 2 2 2
C203.4 2 2 2 3 1 1 0 1 1 1 2 2 2 2 2 2
C203.5 3 3 3 2 2 1 1 0 2 1 2 2 3 3 2 2

RELATION BETWEEN COURSE CONTENT WITH Cos

UNIT I: LINEAR DATA STRUCTURES – LIST


S.No Knowledge Course
Topic
level Outcomes
1. R,U Abstract Data Types (ADTs)

2. U,Ap List ADT Array-based implementation

3. An,Ap Linked list implementation

4. R,U Singly linked lists

5. R,U Circularly linked lists C203.1

6. An,Ap,U Applications of lists

7. U,Ap Polynomial Manipulation


All operations on Lists (Insertion, Deletion, Merge,
8. R,U
Traversal).
9. R,U Abstract Data Types (ADTs)

St. Joseph’s Institute of Technology 2


CS8391 / Data Structures Department of IT 2020-2021

UNIT II: LINEAR DATA STRUCTURES – STACKS, QUEUES

S.No Knowledge Course


Topic
level Outcomes
1. R,U Stack ADT - Operations

2. E Evaluating arithmetic expressions

3. R,U Conversion of Infix to postfix expression

4. R,U Queue ADT – Operations


C203.2
5. U Circular Queue

6. R,U Priority Queue

7. R,U Dequeue

8. U,Ap Applications of queues.

UNIT III : NON LINEAR DATA STRUCTURES – TREES

S.No Knowledge Course


Topic
level Outcomes
1. R,U Tree ADT

2. U,Ap Tree traversals

3. U Binary Tree ADT

4. An,Ap Expression trees

5. R,U Applications of trees


C203.3
6. R,U Binary search tree ADT

7. An,Ap,U Threaded Binary Trees

8. U,Ap AVL Trees

9. R,U,An B-Tree - B+ Tree

10. U,An,Ap Heap – Applications of heap

St. Joseph’s Institute of Technology 3


CS8391 / Data Structures Department of IT 2020-2021

UNIT IV: NON LINEAR DATA STRUCTURES – GRAPHS

S.No Knowledge Topic Course


level Outcomes
1. R,U Definition – representation of graph

2. U Types of graph

3. R,U,Ap Breadth-first traversal

4. R,U,Ap Depth-first traversal


C203.4
5. U,E Topological sort

6. U,Ap Bi-connectivity

7. U,Ap Cut vertex – euler circuits

8. Ap,An Applications of graphs

UNIT V: SEARCHING, SORTING AND HASHING TECHNIQUES

S.No Knowledge Topic Course


level Outcomes
1. U,E Searching: Linear search –Binary Search

2. Ap,E Sorting algorithms: Bubble Sort

3. Ap,E Insertion sort

4. Ap,E Selection sort

5. Ap,E Shell sort


C203.5
6. Ap,E Radix sort

7. R,U Hash Functions – Separate Chaining

8. Ap Open Addressing

9. Ap,E Rehashing

10. Ap,E Extendible Hashing

R- Remembering; U- Understanding; Ap- Applying; An- Analysing; E- Evaluating; C-Creating

St. Joseph’s Institute of Technology 4


CS8391- Data Structures Department of IT 2020-2021
UNIT I LINEAR DATA STRUCTURES – LIST Co Knowle
Abstract Data Types (ADTs) – List ADT – array-based implementation – linked list Mapping dge
Level
implementation –singly linked lists- circularly linked lists- doubly-linked lists –
(R/U/
applications of lists –Polynomial Manipulation – All operations (Insertion, Deletion, Ap/An/
Merge, Traversal). E&C)
UNIT-I / PART-A
1 Define Abstract Data Type (ADT). What are operations of ADT? (May C203.1 R
15,16, Dec 15,19)
An abstract data type (ADT) is the way we look at a data structure, focusing
on what it does and ignoring how it does its job. An ADT is a set of elements
with a collection of well-defined operations. Union, Intersection, size,
complement and find are the various operations of ADT.Examples of ADTs
include list, stack, queue, set, tree, graph, etc
2 What is Data Structure? C203.1 R
A data structure is basically a group of data elements that are put together
under one name, and which defines a systematic way of storing and organizing
data either in computer’s memory or on the disk storage so that it can be used
efficiently.
Some common examples of data structures are arrays, linked lists, queues,
stacks, binary trees and hash tables
3 Why Data Structures? C203.1 U
Data structures study how data are stored in a computer so that operations can
be implemented efficiently. Data structures are especially important when you
have a large amount of information. Conceptual and concrete ways to organize
data for efficient storage and manipulation.
4 Draw the classification diagram of data structures. C203.1 R

5 List out the operations on linear Data Structures. C203.1 R


❖ Traversal: Visit every part of the data structure.
❖ Search: Traversal through the data structure for a given element.
❖ Insertion: Adding new elements to the data structure.
❖ Deletion: Removing an element from the data structure.
❖ Sorting : Rearranging the elements in some type of order(e.g Increasing or
Decreasing)
❖ Merging: Combining two similar data structures into one.

St. Joseph’s Institute of Technology Page 1 of 30


CS8391- Data Structures Department of IT 2020-2021
6 Distinguish between linear data structures from non-linear data C203.1 U
structures.
Linear data structure Non-linear data structure
Data is arranged in linear sequence. Data is not arranged in sequence.
They are easy to implement in They are difficult to implement in
computer’s memory since they are computer’s memory since the data
organized sequentially. element can be attached to various
other data elements.
Example: List, Stacks, Queue etc. Example: Tree, Graph etc.
7 List out the applications of data structures. C203.1 R
❖ Compiler design
❖ Operating system
❖ Statistical analysis package
❖ DBMS
❖ Numerical analysis
❖ Simulation
❖ Artificial intelligence
❖ Graphics
8 Give the classification of data structures. C203.1 R
Data structures are generally categorized into two classes: primitive and
non-primitive data Structures.
❖ Primitive data structures are the fundamental data types which are
supported by a programming language. Some basic data types are
integer, real, character, and boolean. The terms ‘data type’, ‘basic data
type’, and ‘primitive data type’ are often used interchangeably.
❖ Non-primitive data structures are those data structures which are
created using primitive data structures. Examples of such data
structures include linked lists, stacks, trees, and graphs. Non-primitive
data structures can further be classified into two categories: linear and
non-linear data structures.
9 Define Lists. C203.1 R
A list, also called a sequence, is a container that stores elements in a certain
linear order, which is imposed by the operations performed. The basic
operations supported are retrieving, inserting, and removing an element given
its position. Special types of lists include stacks and queues, where insertions
and deletions can be done only at the head or the tail of the sequence. The
basic realization of sequences is by means of arrays and linked lists.
10 Define List Abstract Data Type. C203.1 R
A list is a sequence of zero or more elements of a given type a1, a2, . . . , an (n
≥ 0)
❖ n : length of the list
❖ a1 : first element of the list
❖ an : last element of the list
❖ n = 0 : empty list
❖ elements can be linearly ordered according to their position in the list
We say ai precedes ai+1, ai+1 follows ai, and ai is at position i.

St. Joseph’s Institute of Technology Page 2 of 30


CS8391- Data Structures Department of IT 2020-2021
11 What are the various operations done under list ADT? C203.1 R
❖ Print list
❖ Insert
❖ Make empty
❖ Remove
❖ Next
❖ Previous
❖ Find kth
12 What are the different ways to implement list? C203.1 R
There are two ways to implement list
❖ Simple array implementation of list
❖ Linked list implementation of list
13 Write the Array Implementation of Lists. C203.1 R
❖ Here, elements of list are stored in the (contiguous) cells of an array.
❖ List is a structure with two members.
member 1 : an array of elements
member 2 : last — indicates position of the last element of the list
14 What are the disadvantages of array-based implementation? C203.1 U
❖ Arrays are of fixed size.
❖ Data elements are stored in contiguous memory locations which may not
be always available.
❖ Insertion and deletion of elements can be problematic because of shifting
of elements from
their positions.
15 Why linked list is called as self-referential data type? C203.1 U
In a linked list, every node contains a pointer to another node which is of the
same type; it is also called a self-referential data type.
16 What is meant by a Linked List? or Define linked list.(Nov/Dec 19) C203.1 U
Linear list is defined as item in the list called a node and contains two fields,
an information field and next address field. The information field holds the
actual element on the list. The next address field contains the address of the
next node in the

list.
17 How is an element of a linked list called? What will it contain? C203.1 An
Linked list or list is an ordered collection of elements. Each element in the
list is referred as a node. Each node contains two fields namely,
❖ Data field
❖ Link field
18 What is free pool? C203.1 R
The computer maintains a list of all free memory cells. This list of available
space is called the free pool.
19 List out the disadvantages of linked lists. C203.1 U
❖ It consumes more space because every node requires a additional pointer to
store address of the next node.
❖ Searching a particular element in list is difficult and also time consuming.
St. Joseph’s Institute of Technology Page 3 of 30
CS8391- Data Structures Department of IT 2020-2021
20 Give the comparison between array and linked list.(Nov 18) C203.1 U
Array Linked list
Size of an array is fixed. Size of a list is not fixed.
Memory is allocated from stack. Memory is allocated from heap.
It is necessary to specify the number of It is not necessary to specify the
elements during declaration (i.e., during number of elements during
compile time). declaration (i.e., memory is
allocated during run time).
It occupies less memory than a linked list It occupies more memory.
for the same number of elements.
Inserting new elements at the front is Inserting a new element at any
potentially expensive because existing position can be carried out easily.
elements need to be shifted over to make
room.
Deleting an element from an array is not Deleting an element is possible.
possible.
21 List out the advantages of linked lists. (May 14,15) C203.1 U
Linked lists have many advantages. Some of the very important advantages
are:
❖ Linked lists are dynamic data structures. i.e., they can grow or shrink
during the execution of a program.
❖ Linked lists have efficient memory utilization. Here, memory is not
pre-allocated. Memory is allocated whenever it is required and it is de-
allocated (removed) when it is no longer needed.
❖ Insertion and Deletions are easier and efficient. Linked lists provide
flexibility in inserting a data item at a specified position and deletion of
the data item from the given position.
❖ 4. Many complex applications can be easily carried out with linked
lists.
22 What are the types of Linked Lists? C203.1 R
Singly Linked List, Circular Linked List, Doubly Linked List and Circular
Doubly Linked List.
23 What is singly Linked List? C203.1 R
A single linked list is one in which all nodes are linked together in some
sequential manner. Hence, it is also called as linear linked list. A singly linked
list allows traversal of data only in one way.

24 What is the use of header in a linked list? C203.1 R


A linked list contains a pointer, referred as the head pointer, which points to
the first node in the list that stores the address of the first node of the list.

St. Joseph’s Institute of Technology Page 4 of 30


CS8391- Data Structures Department of IT 2020-2021
25 What are the operations can we perform on a linked list? (June 14) C203.1 R
The basic operations that can be performed on linked list are,
❖ Creation of a list.
❖ Insertion of a node.
❖ Modification of a node.
❖ Deletion of a node.
❖ Traversal of a node.
26 Give the Structure definition of Singly Linked List. C203.1 R
Struct slinklist
{
int data;
struct slinklist* next;
};typedef struct slinklist node;
node *start = NULL;

27 List out the applications of linked list. C203.1 R


1. 1. Linked lists are used to represent and manipulate polynomial. Polynomials
are expression containing terms with non-zero coefficient and exponents.
For example: P(x) = a0 Xn + a1 Xn-1 + …… + an-1 X + an
2. Represent very large numbers and operations of the large number such as
addition, multiplication and division.
3. Linked lists are to implement stack, queue, trees and graphs.
4. Implement the symbol table in compiler construction
28 What is circular linked list? (Dec 14, May 16) C203.1 R
The circular linked list (CLL) is similar to singly linked list except that the last
node’s next pointer points to first node. The list will be accessed like a chain.
Circular linked list can be used to help the traverse the same list again and
again if needed.

29 Mention where circular linked lists are widely used. C203.1 R


❖ A circular linked list is used to maintain the sequence of the Web pages
visited. Traversing this circular linked list either in forward or backward
direction helps to revisit the pages again using Back and Forward buttons.
❖ Circular linked lists are widely used in operating systems for task
maintenance.
❖ Multiplayer games uses circular list to swap between players in a loop.
30 Write the C structure definition of Doubly Linked Lists. C203.1 R
Struct node
{
struct node *prev;
int data; struct node *next;
};

St. Joseph’s Institute of Technology Page 5 of 30


CS8391- Data Structures Department of IT 2020-2021
31 What is Doubly Linked Lists? C203.1 R
A double linked list is one in which all nodes are linked together by multiple
links which helps in accessing both the successor node (next node) and
predecessor node (previous node) from any arbitrary node within the list.
Therefore, it consists of three parts—data, a pointer to the next node, and a
pointer to the previous node. This helps to traverse in forward direction and
backward direction.

32 List out the applications of doubly linked list. C203.1 R


❖ Doubly linked list can be used in navigation systems where both front and
back navigation is required.
❖ It is used by browsers to implement backward and forward navigation of
visited web pages i.e. back and forward button.
❖ It is also used by various applications to
implement Undo and Redo functionality.
❖ It can also be used to represent deck of cards in games.
❖ It is also used to represent various states of a game.
33 What is Circular doubly linked list? C203.1 R
A circular doubly linked list is one, which has both the successor pointer and
predecessor pointer in the circular manner. The objective behind considering
circular double linked list is to
simplify the insertion and deletion operations performed on double linked list.
In circular double linked list the right link of the right most node points back
to the start node and left link of the first node points to the last node.

34 What are the advantages of circular linked list over linear linked list? C203.1 U
The major advantage of circular lists (over non-circular lists) is that they
eliminate some extra-case code for some operations (like deleting last node).
Also, some applications lead naturally to circular list representations. For
example, a computer network might best be modeled using a circular list.
35 List three operations possible for general list that are not allowed for C203.1 U
either stacks or queues?
Linked list are more flexible in regard to insertion and deletion and
rearrangement
❖ Inserting a new entry at any position
❖ Delete a data at any position
❖ Retrieve data at any position

St. Joseph’s Institute of Technology Page 6 of 30


CS8391- Data Structures Department of IT 2020-2021
36 List out the applications of Circular doubly linked list. C203.1 R
❖ Managing songs playlist in media player applications.
❖ Managing shopping cart in online shopping

37 Distinguish singly linked list with doubly linked list. C203.1 R


Singly linked list Doubly linked list
A singly linked list is a linked list A doubly linked list is complex type of
where the node contains some data linked list where the node contains some
and a pointer to the next node in the data and a pointer to the next as well as
list the previous node in the list
It allows traversal only in one way It allows a two way traversal
It uses less memory per node It uses more memory per node(two
(single pointer) pointers)
Complexity of insertion and Complexity of insertion and deletion at
deletion at a known position is O(n) a known position is O(1)
If we need to save memory and If we need better performance while
searching is not required, we use searching and memory is not a
singly linked list limitation, we go for doubly linked list
If we know that an element is If we know that an element is located
located towards the end section, eg. towards the end section e.g. ’zebra’ we
‘zebra’ still we need to begin from can start searching from the Back.
start and traverse the whole list
Singly linked list can mostly be They can be used to implement stacks,
used for stacks heaps, binary trees.
38 What is static linked list? State any two applications of it. (May 15) C203.1 R&U
In Static Linked List, each node is allocated memory when it is to be inserted
dynamically. Each node contains a pointer pointing to the next node. But in
Array List, we store values in an array and have another array storing the
indices of the nodes which correspond to the next item in the list. There is one
key array and one link array. Since the memory allocated to an array is
constant, it is static. The application of static linked list is to implement stack,
hash table and binary tree.
39 State the advantages of ADT.(Nov 18) C203.1 U
❖ Code is easier to understand (e.g., it is easier to see “high-level” steps
being performed, not obscured by low-level code).
❖ Implementations of ADTs can be changed (e.g., for efficiency) without
requiring changes to the program that uses the ADTs.
❖ ADTs can be reused in future programs.
UNIT-I / PART-B
1 Explain in detail about the linked list implementation using an example. State C203.1 U&Ap
the problems in freeing list node. &An
2 Write a program to reverse a linked list using recursion. C203.1 Ap
3 Write a routine to merge given two sorted linked lists.(Dec 15) C203.1 Ap
4 Write an algorithm to insert an element into a linked list. Explain it with an C203.1 U
example. Or Explain the insertion operation linked list. How nodes are &Ap
inserted after a specified node?(Nov/Dec 19)

St. Joseph’s Institute of Technology Page 7 of 30


CS8391- Data Structures Department of IT 2020-2021
5 Write and explain the algorithm to copy a linked list. C203.1 R&U
6 What are the operations on singly linked list? Explain with an example. C203.1 R&Ap
7 Write a C code for singly linked list with insert, delete, and display operations C203.1 R
using structure pointers. (May 16, Nov 18)
8 Describe the creation of a doubly linked list and appending the list. Give C203.1 R
relevant coding C. (Dec 14, May 14)
9 Illustrate the algorithm to implement the doubly linked list and perform all the C203.1 R
operations on the created list. (May 16)
10 Write a C program to concatenate two double linked lists. C203.1 R
11 Write an algorithm to insert a node at front and end of a circular linked list. C203.1 R
12 i) Make a comparison between a linked list and a linear array. Which one C203.1 R&U
will you prefer to use and when?
ii) Give the advantages and uses of circular linked lists.

13 Explain the applications of list. C203.1 R


14 Write a C program to perform addition, subtraction and multiplication C203.1 R
operations on polynomial using linked list. (May 15)
15 State the polynomial representation for 6x3+9x2+7x+1 using linked list. Write C203.1 R&Ap
procedure to add and multiply two polynomial and explain with suitable
example. (Nov 18)
U16 What are the various operations on array? Write a procedure to insert an C203.1 R &U
element in the middle of the array. (Nov 18)
17 Write a procedure to deleting the last node from a circular linked list. (Nov 18) C203.1 R
18 What are the applications of linked list in dynamic storage C203.1 R&U
management?(Nov/Dec 19)
UNIT II LINEAR DATA STRUCTURES – STACKS, QUEUES
Stack ADT – Operations - Applications - Evaluating arithmetic expressions- Conversion of Infix to postfix
expression - Queue ADT – Operations - Circular Queue – Priority Queue - deQueue – applications of queues.
UNIT-II / PART-A
1 What is stack? C203.2 R
A stack is a linear data structure in which the elements in a stack are added and
removed only from one end, which is called the TOP. Hence, a stack is called a
LIFO (Last-In-First-Out) data structure, as the element that was inserted last is
the first one to be taken out. Example: Pile of coins, a Stack of trays in
cafeteria.
2 Where do we need stacks in computer science? C203.2 U
The answer is in function calls. In order to keep track of the returning point of
each active function, a special stack called system stack or call stack is used.
Whenever a function calls another function, the calling function is pushed onto
the top of the stack. This is because after the called function gets executed, the
control is passed back to the calling function.
3 What are the basic operations of stack? C203.2 R
A stack supports two basic operations: push, pop. The push operation adds an
element to the top of the stack and the pop operation removes the element
from the top of the stack.
4 What are the different ways to implement Stack? C203.2 R
Stacks can be implemented using either arrays or linked lists.

St. Joseph’s Institute of Technology Page 8 of 30


CS8391- Data Structures Department of IT 2020-2021
5 What is the use of system stack? C203.2 U
The system stack ensures a proper execution order of functions. Therefore,
stacks are frequently used in situations where the order of processing is very
important, especially when the processing needs to be postponed until other
conditions are fulfilled.
6 Draw the stack representation. C203.2 R

7 What are the different ways to implement stack? C203.2 R


❖ Stack implementation using array.
❖ Stack implementation using linked list.
8 Write the array implementation of stack. C203.2 R
Stack can be represented as “Array”. For Representing Stack we have to
declare the following data structure
typedef struct stack
{ int data[MAX];
int top;
}stack;
9 Give the meaning of peek( ), isFull( ) and isEmpty( ) operations. C203.2 R
❖ Peek( ) - The peek operation returns the value of the topmost element of
the stack.
❖ isFull( ) − check if stack is full.
❖ isEmpty( ) − check if stack is empty.
10 What is Stack Overflow and Underflow? C203.2 R
❖ Any attempt to insert a new element in already full stack is results into
Stack Overflow.
❖ Any attempt to delete an element from already empty stack results into
Stack Underflow.
11 List out the basic operations that can be performed on a stack C203.2 R
The basic operations that can be performed on a stack are
✓ Push operation
✓ Pop operation
✓ Peek operation
✓ Empty check
✓ Fully occupied check
12 What are the different forms of representing arithmetic expressions? C203.2 R
❖ Infix Notation: Operators are written between the operands.
❖ Prefix (Polish) Notation: Operators are written before the operands. Postfix
Expression is:AB/C+

St. Joseph’s Institute of Technology Page 9 of 30


CS8391- Data Structures Department of IT 2020-2021
13 List out the position of Top in the stack. C203.2 R
Position of Top Status of Stack
-1 Stack is Empty
0 First Element is Just Added into Stack
N-1 Stack is said to Full
N Stack is said to be Overflow
14 How Postfix notations are evaluated? C203.2 U
Postfix notations are evaluated using stacks. Every character of the postfix
expression is scanned from left to right. If the character is an operand, it is
pushed onto the stack. Else, if it is an operator, then the top two values are
popped from the stack and the operator is applied on these values. The result is
then pushed onto the stack.
15 Differentiate between a stack and an array. C203.2 U
STACK ARRAY
Stack is a ordered collection of items Array is an ordered collection of
items
Stack is a dynamic object whose size Array is a static object i.e. no of item
is constantly changing as items are is fixed and is assigned by the
pushed and popped declaration of the array
Stack may contain different data types It contains same data types.
16 How does a stack implemented using linked lists differ from a stack C203.2 U
implemented using an array?
Stack implemented using array works only on fixed no of data values. The
amount of data must be specified at the beginning of the implementation itself
whereas linked list works for variable size of data. So, there is no need to fix
the size at the beginning of the implementation.
17 Give some applications of stack. (Dec 14, Nov/Dec 18,19) C203.2 R
❖ Reversing a list
❖ Parentheses checker
❖ Conversion of an infix expression into a postfix expression
❖ Evaluation of a postfix expression
❖ Conversion of an infix expression into a prefix expression
❖ Evaluation of a prefix expression
❖ Recursion
❖ Tower of Hanoi
18 Explain how stacks are used in a recursive program? C203.2 U
A recursive function is defined as a function that calls itself to solve a smaller
version of its task until a final call is made which does not require a call to
itself. They are implemented using system stack.
19 Why are parentheses not required in postfix/prefix expressions? C203.2 An
Parenthesis is not required because the order of the operators in the postfix
/prefix expressions determines the actual order of operations in evaluating the
expression.
20 Given the prefix form of the given infix expression a*b/c+d. (May 16) C203.2 R
infix expression a*b/c+d
Prefix form : +/*abcd

St. Joseph’s Institute of Technology Page 10 of 30


CS8391- Data Structures Department of IT 2020-2021
21 What do you understand by a multiple stack? C203.2 U
If the stack is allocated less space, then frequent OVERFLOW conditions will
be encountered. To deal with this problem, the code will have to be modified
to reallocate more space for the array. In case we allocate a large amount of
space for the stack, it may result in sheer wastage of memory. Thus, there lies
a trade-off between the frequency of overflows and the space allocated. To
deal with this problem is to have multiple stacks or to have more than one
stack in the same array of sufficient size.
22 What is Tower of Hanoi? C203.2 R
Tower of Hanoi is one of the examples illustrating the recursion technique.
The problem is moving a collection of N disk of decreasing size from one
pillar to another pillar. The movement of the disk is restricted by the following
rules: Rule 1: Only one disk could be moved at a time.
Rule 2: No larger disk could ever reside on a pillar on top of a smaller disk.
Rule 3: A 3rd Pillar could be used as an intermediate to store one or more
disks, while they were being moved from source to destination.
23 What are the Steps to be followed for the Evaluation of Postfix C203.2 R
Expression?
Read the postfix expression one character at a time until it encounters the
delimiter ‘#’.
Step 1: If the character is an operand, push its associated value onto the attack.
Step 2: If the character is an operator, POP two values from the stack, apply
the operator to them and push the result on to the attack.
24 What are the advantages of using infix notations and postfix notations? C203.2 U
Advantages of using infix notations
❖ It is the mathematical way of representing the expression
❖ It is easier to see visually which operation is done from first to last
Advantages of using postfix notations
❖ Need not worry about the rules of precedence
❖ Need not worry about the rules for right to left associativity
❖ Need not need parenthesis to override the above rules
25 What are the Steps to be followed to convert an expression from Infix to C203.2 R
Postfix? .(Nov/Dec 19)
Read the infix expression one character at a time.
Step 1: If the character is an operand, place it on to the output.
Step 2: If the character is an operator, push it onto the stack. If the stack
operator has a higher or equal priority than input operator, then pop that
operator from the stack and place it onto the output.
Step 3: If the character is a left parenthesis, push it onto the stack.
Step 4: If the character is a right parenthesis, pop all the operators from the
stack till it encounters left parenthesis, discard both the parenthesis in the
output.
26 What is Queue? (Dec 15) C203.2 R
A queue is a FIFO (First-In, First-Out) data structure in which the element that
is inserted first is the first one to be taken out. The elements in a queue are
added at one end called the REAR and removed from the other end called the
FRONT.

St. Joseph’s Institute of Technology Page 11 of 30


CS8391- Data Structures Department of IT 2020-2021
27 Write the rules to be followed during infix to prefix conversions. C203.2 R
❖ Fully parenthesize the expression starting from left to right. During
parenthesizing, the operators having higher precedence are first
parenthesized.
❖ Move the operators one by one to their left, such that each operator
replaces their corresponding left parenthesis.
❖ The part of the expression, which has been converted into prefix is to be
treated as single operand.
❖ Once the expression is converted into prefix form, remove all parentheses.
28 What are the postfix and prefix forms of the expression? C203.2 R
A+B*(C-D)/(P-R) Postfix form: ABCD-*PR-/+ Prefix form: +A/*B-CD-PR

29 Write the rules to be followed during infix to postfix conversions. C203.2 R


❖ Fully parenthesize the expression starting from left to right. During
parenthesizing, the operators having higher precedence are first
parenthesized.
❖ Move the operators one by one to their right, such that each operator
replaces their corresponding right parenthesis.
The part of the expression, which has been converted into postfix is to be
treated as single operand.
30 Draw the Queue representation. C203.2 R

31 What is Enqueue and Dequeue? C203.2 R


The process of inserting an element in the queue is called enqueue, and the
process of deleting an element from the queue is called dequeue.
32 How queue data structure can be implemented? C203.2 U
In the computer’s memory, queues can be implemented using both arrays and
linked lists.
33 Give the storage requirement of linked representation of queue. C203.2 R
The storage requirement of linked representation of queue with n elements is
O (n) and the typical time requirement for operations is O (1).
34 What are the classifications of queue? C203.2 R
A queue data structure can be classified into the following types:
1. Circular Queue
2. Deque
3. Priority Queue
4. Multiple Queue

St. Joseph’s Institute of Technology Page 12 of 30


CS8391- Data Structures Department of IT 2020-2021
35 What does a Priority Queue mean? (Nov 18) C203.2 R
A Priority queue is an abstract data type in which each element is assigned a
priority. The priority of the element will be used to determine the order in
which these elements will be processed. The General rule of processing the
elements of apriority queue is:
❖ An element with higher priority is processed before an element with a
lower priority.
❖ Two elements with the same priority are processed on a First-Come-
First-Served (FCFS) basis.
36 Explain the concept of a circular queue. How is it better than a linear C203.2 R&An
queue?
Circular queue have less memory consumption as compared to linear queue
because while doing insertion after deletion operation it allocate an extra space
the first remaining vacant but in circular queue the first is used as it comes
immediate after the last.
37 What is deque? (Dec 14,15) (May 14,16) C203.2 R
A deque (Double-Ended Queue) (pronounced as ‘deck’ or ‘dequeue’) is a list
in which the elements can be inserted or deleted at either end. It is also known
as a head-tail linked list because elements can be added to or removed from
either the front (head) or the back (tail) end.

38 What are the types of double-ended queue? C203.2 R


There are two variants of a double-ended queue. They include
❖ Input restricted deque: In this dequeue, insertions can be done only at one
of the ends, while deletions can be done from both ends.
❖ Output restricted deque: In this dequeue, deletions can be done only at one
of the ends, while insertions can be done on both ends
39 What is Circular Queue? C203.2 R
Circular Queue is a linear data structure in which the operations are performed
based on FIFO (First In First Out) principle and the last position is connected
back to the first position to make a circle. It is also called ‘Ring Buffer’.


St. Joseph’s Institute of Technology Page 13 of 30
CS8391- Data Structures Department of IT 2020-2021
40 What are the different ways to implement priority queue? C203.2 R
❖ Linked Representation of a Priority Queue.
❖ Array Representation of a Priority Queue
41 How to implement priority queue using a linked list? C203.2 R
When a priority queue is implemented using a linked list, then every node of
the list will have three parts:
(a) The information or data part,
(b) The priority number of the element, and
(c) The address of the next element.
42 What are multiple queues? C203.2 R
Multiple queues mean to have more than one queue in the same array of
sufficient size.
43 Difference between stack and queue C203.2 U
Stack Queue
A Stack Data Structure works on A Queue Data Structure works on
Last In First Out (LIFO) principle. First In First Out (FIFO) principle.
A Stack requires only one reference A Queue requires two reference
pointer. pointers.
A Stack is primarily a vertical A Queue is a horizontal
representation of data items. representation of data items.
A Stack contains TOP as its A Queue
reference for data processing. contains REAR and FRONT as its
reference for data processing.
Adding operation in the stack is Removing element in the stack is
called as PUSH. called as POP.
Removing element in the stack is Removing element in the queue is
called as POP. called as dequeue.
The way recursive system call System interrupt is a good example
works, it uses Stack mechanism. where queue mechanism is used
44 List out the applications of queues. C203.2 R
❖ Queues are widely used as waiting lists for a single shared resource like
printer, disk, CPU.
❖ Queues are used to transfer data asynchronously (data not necessarily
received at same rate as sent) between two processes (IO buffers), e.g.,
pipes, file IO, sockets.
❖ Queues are used as buffers on MP3 players and portable CD players, iPod
playlist.
❖ Queues are used in Playlist for jukebox to add songs to the end, play from
the front of the list.
❖ Queues are used in operating system for handling interrupts. When
programming a real-time system that can be interrupted, for example, by a
mouse click, it is necessary to process the interrupts immediately, before
proceeding with the current job. If the interrupts have to be handled in the
order of arrival, then a FIFO queue is the appropriate data structure.

St. Joseph’s Institute of Technology Page 14 of 30


CS8391- Data Structures Department of IT 2020-2021
UNIT-II / PART-B
1 What is a Stack? Write the algorithm to perform insertion &deletion operation C203.2 R
in the array implementation of stack.
2 Discuss about stack ADT in detail. Explain any one application of stack. C203.2 R
(Dec 14)
3 Write the Routine to perform Push, Pop and Peek operation in the Linked List C203.2 R
implementation of stack. Or Write an algorithm for push and pop operations
on Stack using Linked List (Nov/Dec 19)
4 Write a program to reverse a list of given numbers. C203.2 Ap
5 Convert the infix expression (a*b)+((c*g)-(e/f)) into reverse polish notation. C203.2 Ap
6 Explain the implementation of Evaluating Postfix Expression with an example C203.2 Ap
of abcd+e*+f+*
7 Convert A * (B + C) * D to postfix notation C203.2 Ap
8 Explain the implementation of Converting Infix to Postfix Expression.(Nov18) C203.2 Ap
9 Write an algorithm for convert infix expression to postfix expression with an C203.2 Ap
example of
i) (A+(B*C-(D/E^F)*G)*H). (May 14)
ii) a + b * c + (d * e + f) * g
10 Evaluate the following postfix expression abcd+e*+f+* where a=3 b=2 c=5 C203.2 Ap
d=6 e= 8 f=2.
11 Write C program that checks if expression is correctly parenthesized using C203.2 Ap
stack. (May 15)
12 What is a Queue? Write an Algorithm to perform Enqueue and Dequeue C203.2 R &Ap
operation in the array implementation of queue. Give relevant examples and
diagrammatic representations.
13 Explain about Queue ADT in detail. Explain any one application of queue C203.2 R
with suitable example. (Dec 14)
14 Write a procedure to insert & delete an element in the linked list C203.2 R
implementation of queue.
15 Write C program to implement Queue Functions using Arrays and Macros. C203.2 R
(May 15)
16 Write a Program to create a queue from stack. C203.2 R
17 Explain Priority Queue with suitable example? Give its applications. Or C203.2 R&U
Implement a priority queue using linked list.(Nov/Dec 19)
18 Explain the concept of circular queue with example? How is it better than C203.2 R&An
linear queue? (Nov 18)
19 Write an algorithm to perform the four operations in a double ended queue that C203.2 R
is implemented as an array. Or What is a DeQueue? Explain its operation with
example (May 14,Nov/Dec 19)
20 Differentiate between double ended queue and circular queue. (May 16) C203.2 U
21 There are n balls in the box. The colours of the balls are red and blue. You are C203.2 U &
requested to stack the ball in the bottom sealed basket one by one. The order Ap
of placing the balls is two consecutive red balls followed by the two
consecutive blue balls. Later, create two empty queues Q1 and Q2. Remove
the last inserted ball from the basket and place it in Q1. Similarly remove the
next ball from the basket and insert in Q2. Develop a program to repeat this
process until the basket is empty and also print the colour of the balls in both
queues.(Nov/Dec 19)

St. Joseph’s Institute of Technology Page 15 of 30


CS8391- Data Structures Department of IT 2020-2021
UNIT III NON LINEAR DATA STRUCTURES – TREES
Tree ADT – tree traversals - Binary Tree ADT – expression trees – applications of trees – binary search tree
ADT –Threaded Binary Trees- AVL Trees – B-Tree - B+ Tree - Heap – Applications of heap.
UNIT-III/ PART-A
1 Define Tree. Give an example. C203.3 R
A Tree is a collection of one or more nodes with a distinct node called the root,
while remaining nodes are partitioned as T1 ,T2, ..,Tk , K≥ 0 each of which are
sub trees, the edges of T1,T2,…,Tk are connected the root.

Example : directory structure hierarchy


2 Give some applications of Trees. C203.3 R
❖ Implementing the file system of several operating systems.
❖ Evaluation of arithmetic expression.
❖ Set representation.
❖ Gaming/Decision making problems.
3 Define node, degree, siblings, depth/height, level.(Nov/Dec 19) C203.3 R
❖ Node: A node is an item of information with branches to other items.
❖ Degree: The number of subtrees of a node is called is degree.
❖ Siblings: The children of the same parent is said to be siblings.
❖ Level: The level of a node is defined recursively by assuming the level of
the root to be one and if a node is at level l, then its children at level l+1.
❖ Depth/Height: The depth/height of a tree is defined to be the level of a
node which is maximum.
4 Write the routine for node declaration in trees. C203.3 R
typedef struct TreeNode , *PtrToNode;
struct TreeNode
{
ElementType Element;
PtrToNode FirstChild;
PtrToNode NextSibling; };
5 Define terminal and nonterminal nodes in a tree C203.3 R
❖ A node which has no children is called a terminal node. It is also referred
as a leaf node. These nodes have a degree as zero.
❖ All intermediate nodes that traverse the given tree from its root node to the
terminal nodes are referred as terminal nodes.
6 Define a full binary tree. C203.3 R
A full binary tree, is a tree in which all the leaves are on the same level and
every non-leaf node has exactly two children.
7 Define a complete binary tree. C203.3 R
A complete binary tree is a tree in which every non-leaf node has exactly two
children not necessarily to be on the same level.
St. Joseph’s Institute of Technology Page 16 of 30
CS8391- Data Structures Department of IT 2020-2021
8 Define a path in a tree. C203.3 R
A path in a tree is a sequence of distinct nodes in which successive nodes are
connected by edges in the tree.

B C

D E F G

The path from A-H is A-B-D-H


9 Define a Binary Tree ADT with an example. C203.3 R
A Binary Tree is a tree, which has nodes either empty or not more than two
child nodes, each of which may be a leaf node.

B C

D E F G
10 State the properties of a Binary Tree. C203.3 R
❖ Maximum No. of nodes on level n of a binary tree is 2^(n-1),where n>=1.
❖ Maximum No. of nodes in a Binary tree of height is 2^(n-1),where n>=1.
❖ For any non-empty tree,nl=nd+1 where nl is the number of leaf nodes and
nd is the no. of nodes of degree 2.
11 What are the different ways of representing a Binary Tree? C203.3 R
❖ Linear Representation using Arrays.
❖ Linked Representation using Pointers.
12 Define Traversal. C203.3 R
Traversal is an operation which can be performed on a binary tree is visiting all
the nodes exactly once.
❖ In order: traversing the LST, visiting the root and finally traversing the
RST.
❖ Preorder: visiting root, traversing LST and finally traversing RST.
❖ Post- order: traversing LST, then RST and finally visiting root.
13 Define Threaded Binary tree. C203.3 R
A Threaded Binary Tree is a binary tree in which every node that does not have
a right child has a THREAD (in actual sense, a link) to its INORDER
successor. By doing this threading we avoid the recursive method of traversing
a Tree, which makes use of stacks and consumes a lot of memory and time.

St. Joseph’s Institute of Technology Page 17 of 30


CS8391- Data Structures Department of IT 2020-2021
14 Define a Binary Search Tree.(Nov/Dec 19) C203.3 R
A Binary Search Tree is a special binary tree, which is either empty or if it is
empty it should satisfy the conditions given below:
❖ Every node has a value and no two nodes should have the same value
(Values should be distinct).
❖ The value in any left subtree is less than the value of its parent node.
❖ The value in any right subtree is greater than the value of its parent
node.

15 Define Forest. C203.3 R


A forest is a collection on N(N>0) disjoint tree or group of trees. If the root is
removed from the tree that tree becomes a forest.
Uses:
❖ Forest data structure finds great use in data science.
❖ Social networking websites.
❖ Operating system storage
❖ Big Data
16 Perform inorder, preorder and postorder traversal for the given tree. C203.3 Ap

17 Draw the expression tree for the given postfix expression using stack. C203.3 Ap
AB*C+

1 2

*
A B A B

3
4

C +
*
A B
C
*
A B

St. Joseph’s Institute of Technology Page 18 of 30


CS8391- Data Structures Department of IT 2020-2021
18 Define balanced search tree. (Dec 13) C203.3 R
Balanced search tree have the structure of binary tree and obey binary search
tree properties with that it always maintains the height as O(log n) by means of
a special kind of rotations. E.g. AVL, Splay, B-tree.
19 Define AVL tree. (Dec 13) C203.3 R
An empty tree is height balanced. If T is a non-empty binary tree with TL and
TR as its left and right subtrees, then T is height balanced if
1. TL and TR are height balanced.
2. | hL - hR | ≤ 1.Where hl and hr are the height of TL and TR respectively.
20 What are the drawbacks of AVL trees? C203.3 U
The drawbacks of AVL trees are
❖ Frequent rotations
❖ The need to maintain balances for the tree’s nodes
❖ Overall complexity, especially of the deletion operation.
21 What are the two alternatives that are used to construct a heap? C203.3 R
The two alternatives to construct a heap are
❖ Bottom-up heap construction
❖ Top-down heap construction
22 What is the main use of heap? C203.3 R
Heaps are especially suitable for implementing priority queues. Priority queue
is a set of items with orderable characteristic called an item’s priority, with the
following operations
❖ Finding an item with the highest priority
❖ Deleting an item with highest priority
❖ Adding a new item to the set.
23 Give three properties of heaps? C203.3 R
The properties of heap are
❖ There exists exactly one essentially complete binary tree with ‘n’
nodes. Its height is equal to log2n
❖ The root of the heap is always the largest element
❖ A node of a heap considered with all its descendants is also a heap
24 Give the main property of a heap that is implemented as an array. C203.3 R
A heap can be implemented as an array by recording its elements in the top-
down, left-to-right fashion. It is convenient to store the heap’s elements in
positions 1 through n of such an array. In such a representation
❖ The parental node keys will be in the first n/2 positions of the array,
while the leaf keys will occupy the last n/2 positions
❖ The children of a key in the array’s parental position ‘i’ (1  i  n/2) will
be in positions 2i and 2i+1and correspondingly, the parent of the key in
position ‘i’ (2  i  n) will be in position i/2.
25 Define Min-heap and Max-heap. C203.3 R
❖ Min-heap: A min-heap is a mirror image of the heap structure. It is a
complete binary tree in which every element is less than or equal to its
children. So the root of the min-heap contains the smallest element.
❖ Max-heap: A heap in which the parent has a larger key that the child’s key
values then it is called Max-heap
St. Joseph’s Institute of Technology Page 19 of 30
CS8391- Data Structures Department of IT 2020-2021
26 Define binary heaps. C203.3 R
A binary heap is a heap data structure created using a binary tree. It can be
seen as a binary tree with two additional constraints:
❖ The shape property: the tree is an almost complete binary tree; that is,
all levels of the tree, except possibly the last one (deepest) are fully
filled, and, if the last level of the tree is not complete, the nodes of that
level are filled from left to right.
❖ The heap property: each node is greater than or equal to each of its
children according to some comparison predicate which is fixed for the
entire DS.
27 What is a heap? C203.3 R
A heap is a partially ordered data structure, and can be defined as a binary tree
assigned to its nodes, one key per node, provided the following two conditions
are met
❖ The tree’s shape requirement-The binary tree is essentially complete,
that is all the leaves are full except possibly the last level, where only
some rightmost leaves will be missing.
❖ The parental dominance requirement-The key at each node is greater
that or equal to the keys of its children.
28 Define B-tree.(Dec 15, May 16) C203.3 R
A B-tree of order m in an m-way search tree that is either empty or is of height
≥1 and
❖ The root node has at least 2 children
❖ All nodes other than the root node and failure nodes have at least m/2
children.
❖ All failure nodes are at same level.
29 Explain AVL rotation. Mention the two types of rotations (Dec 13) C203.3 R
Some modifications done on AVL tree in order to rebalance it is called
Rotation of AVL tree. Two types of rotation are
1. single rotation
❖ Left-Left Rotation
❖ Right-Right Rotation
2. Double rotation.
❖ Left-Right Rotation
❖ Right-Left Rotation
30 Define Priority Queue. C203.3 R
Priority queue is a specialized data structure in which the elements are
organized according to the priorities of some key value.
31 Define splay tree. C203.3 R
A splay tree is a binary search tree in which restructuring is done using a
scheme called splay. A splay is heuristic method which moves a given vertex v
to the roof of the splay tree using a sequence of rotations.

St. Joseph’s Institute of Technology Page 20 of 30


CS8391- Data Structures Department of IT 2020-2021
32 Show the result of inorder traversal of the binary search tree given in C203.3 Ap
figure. (Nov 18)

Inorder Traversal – 1 2 3 4 5 6 7 9
33 For the tree in Figure . (a) List the siblings for node E ( b)Compute the height. C203.3 Ap
(Nov 18)

List the siblings for node E = D


Compute the height = 3
UNIT-III / PART-B
1 a) What are the types of representation of binary tree? C203.3 R&U
b) Show that for the perfect binary tree of height h containing 2h+1-1nodes
2 What is traversal? Give an algorithm for traversal in the binary tree. Or Explain the C203.3 R &Ap
tree traversal techniques with an example.(Nov/Dec 19)
3 Draw a Binary search tree for the following input list 60,25,75,15,50,66,33, 44. C203.3 Ap
Trace the algorithm to delete the nodes 25, 75, 44 from the tree.
4 Write a routine to implement the basic binary search tree operations. Or How to C203.3 R & Ap
insert and delete an element into a binary search tree and write down the code for
the insertion routine with an example. (Nov/Dec 18,19)
5 Explain in detail about Threaded binary trees. C203.3 R
6 Write the algorithm to construction an expression tree and construction an C203.3 R &Ap
expression tree for the input ab+cde+**. (Nov 18)
7 Show the result of inserting 10,12,1,14,6,5,8,15,3,9,7,4,11,13, and, 2, one at a time, C203.3 R &Ap
in to an initially empty binary heap.
8 Write and test a program that performs the operation Insert, DeleteMin, Build C203.3 R
Heap, Findmin, DecreaseKey, Delete, and IncreaseKey in a binary Heap.
9 Show the result of inserting 2, 4,1,5,9,3,6,7 in to an initially empty AVL Tree. C203.3 R &Ap
10 Write a procedure to implement AVL single and double rotations. C203.3 R
11 Write a routine to perform insertion and deletion in B-Tree. C203.3
12 Explain in detail about splay trees and its rotations with example. C203.3 R
13 Construct the heap for the following array structure and write a procedure to C203.3 R &Ap
perform percolate up and percolate down in a binary heap.
5 19 8 37 75 55 14 22 43 4
14 Distinguish between B Tree and B+ Tree. Create a B tree of order 5 by inserting the C203.3 R &Ap
following elements : 3, 14, 7, 1, 8, 5, 11, 17, 13, 6, 23, 12, 20, 26, 4, 16, 18, 24, 25
and 19. (Nov 18)

St. Joseph’s Institute of Technology Page 21 of 30


CS8391- Data Structures Department of IT 2020-2021
UNIT IV NON LINEAR DATA STRUCTURES – GRAPHS
Definition – Representation of Graph – Types of graph - Breadth-first traversal - Depth-first traversal –
Topological Sort – Bi-connectivity – Cut vertex – Euler circuits – Applications of graphs.
UNIT-IV / PART-A
1 Define Graph. C203.4 R
A graph G consist of a nonempty set V which is a set of nodes of the graph, a
set E which is the set of edges of the graph, and a mapping from the set for
edge E to a set of pairs of elements of V. It can also be represented as G=(V,
E).
2 Define adjacent nodes. C203.4 R
Any two nodes which are connected by an edge in a graph are called adjacent
nodes. For example, if an edge x ε E is associated with a pair of nodes (u,v)
where u, v ε V, then we say that the edge x connects the nodes u and v.
3 What is a loop? C203.4 R
An edge of a graph which connects to itself is called a loop or sling. Where
graphs are defined so as to allow loops and multiple edges, a graph without
loops or multiple edges is often distinguished from other graphs by calling it a
simple graph.
4 What is an undirected graph? C203.4 R
An undirected graph is graph, i.e., a set of objects (called vertices or nodes)
that are connected together, where all the edges are bidirectional. An
undirected graph is sometimes called an undirected network.

5 What is a directed graph? C203.4 R


A directed graph is graph, i.e., a set of objects (called vertices or nodes) that
are connected together, where all the edges are directed from one vertex to
another. A directed graph is sometimes called a digraph or a directed
network.

6 What is a weighted graph? C203.4 R


A weighted graph is a graph in which each branch is given a numerical
weight. A weighted graph is therefore a special type of labeled graph in which
the labels are numbers (which are usually taken to be positive).

St. Joseph’s Institute of Technology Page 22 of 30


CS8391- Data Structures Department of IT 2020-2021
7 What is a simple path? C203.4 R
A path in a diagram in which the edges are distinct is called a simple path. It
is also called as edge simple.
A path in a graph is a sequence of vertices such that from each of its vertices
there is an edge to the next vertex in the sequence.
8 Define out degree of a graph. C203.4 R
In a directed graph, for any node v, the number of edges which have v as their
initial node is called the out degree of the node v. Ex : out degree of c =2

a b

9 Define in degree of a graph.c C203.4 R


In a directed graph, for any node v, the number of edges which have v as their
terminal node is called the in degree of the node v. Ex : In degree of c =1

a b

10 What is a simple graph? C203.4 R


A simple graph is a graph, which has not more than one edge between a pair of
nodes than such a graph is called a simple graph.
11 Define path in a graph. C203.4 R
The path in a graph is the route taken to reach terminal node from a starting
node. A path in a graph is a sequence of vertices such that from each of its
vertices there is an edge to the next vertex in the sequence.

a b
a
e
a
c d
a a
The path from ‘a’ to ‘e’ are P1 = ((a,b),(b,e)) P2 = ((a,c),(c,d),(d,e))
12 What is a cycle or a circuit? C203.4 R
A path which originates and ends in the same node is called a cycle or circuit.
A cycle is a path where the last vertex is adjacent to the first. A cycle in which
no vertex repeats (such as 1-2-3-1 versus 1-2-3-2-1) is said to be simple.
13 What is an acyclic graph? C203.4 R
A simple diagram which does not have any cycles is called an acyclic graph.
An acyclic graph does not contain any cycles. Trees are connected acyclic
undirected graphs. Directed acyclic graphs are called DAGs.
14 What are the two traversal strategies used in traversing a graph? C203.4 R
❖ Breadth First Search
❖ Depth First Search
15 When is a graph said to be weakly connected? C203.4 R
When a directed graph is not strongly connected but the underlying graph is
connected, then the graph is said to be weakly connected.

St. Joseph’s Institute of Technology Page 23 of 30


CS8391- Data Structures Department of IT 2020-2021
16 What is an undirected acyclic graph? C203.4 R
When every edge in an acyclic graph is undirected, it is called an undirected
acyclic graph. It is also called as undirected forest.
17 Define connected and strongly connected graph.(Nov/Dec 19) C203.4 R
❖ Two Vertices u and v are said to be connected if there exists a path from u
to v in the graph. A directed graph is said to be connected if every pair of
vertices in the graph is connected.
❖ A directed graph is said to be strongly connected if for every pair of
distinct vertices vi and vj, there exists two disjoint paths, one from vi to vj
and the other from vj to vi.

18 What are the different ways to represent graph ?(Dec 14, C203.4 R
May 16, Nov 18)
Two ways of representing a graph are:
❖ Adjacency matrix
❖ Adjacency list
19 List the two important key points of depth first search. C203.4 R
❖ If path exists from one node to another node, walk across the edge
exploring the edge.
❖ If path does not exist from one specific node to any other node,
return to the previous node where we have been before –
backtracking.
20 What do you mean by breadth first search (BFS)? C203.4 U
The breadth first traversal is a graph search algorithm that begins at root node
and explores all the beginning nodes. Then for each of those nearest nodes, it
explores their unexplored neighbor nodes and so on, until it finds the goal.
21 Define Shortest path problem. C203.4 R
For a given graph G=(V, E), with weights assigned to the edges of G, we have
to find the shortest path (path length is defined as sum of the weights of the
edges) from any given source vertex to all the remaining vertices of G
22 What is Bi- connectivity in graph? C203.4 R
❖ A connected undirected graph is bi-connected if there are no vertices
whose removal disconnects the rest of the graph.
❖ If the nodes are computers and the edges are links, then if any computer
goes down, network mail is unaffected, except, of course, at the down
computer. Similarly, if a mass transit system is bi-connected, users always
have an alternate route should some terminal be disrupted.
23 What is Euler path and Euler circuit? (Nov 18) C203.4 R
❖ An Euler path is a path that uses every edge of a graph exactly once. An
Euler path starts and ends at different vertices.
❖ An Euler circuit is a circuit that uses every edge of a graph exactly once.
An Euler circuit starts and ends at the same vertex.
24 What is topological sorting (Dec 15) C203.4 R
Topological or topological ordering of a directed graph is a linear ordering of
its vertices such that for every directed edge u v from vertex u to vertex v, u
comes before v in the ordering.
St. Joseph’s Institute of Technology Page 24 of 30
CS8391- Data Structures Department of IT 2020-2021
25 What is cut- vertex (or) what is an articulation point? C203.4 R
❖ If a graph is not bi-connected, the vertices whose removal would
disconnect the graph are known as articulation points.
❖ These nodes are critical in many applications. The graph in following
Figure is not bi-connected: C and D are articulation points. The removal of
C would disconnect G, and the removal of D would disconnect E and F,
from the rest of the graph

26 List out the applications of depth—first search .(May 16) C203.4 R


❖ Detecting cycle in a graph
❖ Path Finding
❖ Topological Sorting
To test if a graph is bipartite
27 Prove that the maximum number of edges that a graph with n Vertices is C203.4 R
n*(n-1)/2.
Choose a vertex and draw edges from this vertex to the remaining n-1 vertices.
Then, from these n-1 vertices, choose a vertex and draw edges to the rest of
the n-2 Vertices. Continue this process till it ends with a single Vertex. Hence,
the total number of edges added in graph is
(n-1)+(n-2)+(n-3)+…+1 =n*(n-1)/2.
28 Define adjacency list.(Nov/Dec 19) C203.4 R
Adjacency List is the Array[] of Linked List, where array size is same as
number of Vertices in the graph. Every Vertex has a Linked List. Each Node
in this Linked list represents the reference to the other vertices which share an
edge with the current vertex. The weights can also be stored in the Linked List
Node.
UNIT-IV / PART-B
1 Explain in detail about Topological Sort Explain topological sort with C203.4 R &Ap
algorithm and suitable example (May 12, Nov 18)
2 Explain the various types of graphs with an example? C203.4 R &Ap
3 Compare BFS and DFS with pseudo code.(May 12 , Nov 18) C203.4 U
4 Describe the various representations of graphs (Dec 13) C203.4 R
5 (i) Explain the different ways to represent a graph. C203.4 R
(ii) Show the adjacency matrix, adjacency list and multi-list representation of a
given undirected graph.
6 Explain in detail about Bi-connectivity with an Example. C203.4 R &Ap
7 Write a short notes about Euler circuit? Give an Example. C203.4 R &Ap
8 Present the pseudo codes of the different graph traversal methods and C203.4 R &Ap
demonstrate with an example or Explain depth first and breadth first
traversal. (Nov/Dec 16,19)
9 Explain the various applications of Graphs.(Nov/Dec 19) C203.4 R

St. Joseph’s Institute of Technology Page 25 of 30


CS8391- Data Structures Department of IT 2020-2021
10 Write an algorithm for breadth first search on a graph and give the nodes of C203.4 R &Ap
the graph 'G' given in following figure based on the algorithm (Dec 14)

11 Consider a directed acyclic graph 'D' given in following graph. sort the nodes C203.4 R &Ap
of 'D' by applying topological sort on 'D' (Dec 14)

UNIT V SEARCHING, SORTING AND HASHING TECHNIQUES


Searching- Linear Search - Binary Search. Sorting - Bubble sort - Selection sort - Insertion sort - Shell sort –
Radix sort. Hashing- Hash Functions – Separate Chaining – Open Addressing – Rehashing – Extendible
Hashing.
UNIT-V / PART-A
1 Define best case of an algorithm. C203.5 R
It is the shortest time that an algorithm will use over all instances of size n for
a given problem to produce the result.
2 What is binary search? C203.5 R
Binary search is also a method used to locate a specified item in a sorted list.
This method starts by comparing the searched element to the elements in the
middle of the list. If the comparison determines that the two elements are
equal the method stops and returns the position of the element. If the searched
element is greater than the middle element, it starts the method again using
only the bottom half of the sorted list. If the searched element is less than the
middle element, it starts the method again using only the top half of the sorted
list.
3 What is the best case and Average case analysis of shell sort? C203.5 R
❖ Best case Analysis – O(N log N)
❖ Average case Analysis – O(N1 . 5)
Differentiate linear search and binary search. C203.5 U
Linear search Binary search
Linear search is easy but takes more Binary search it start searching from
time to search an element as it middle, if the searching element is
compare all element sequentially not found in middle then it goes to
left or right and viceversa.and hence
take less time than linear search
Iterative in nature Divide and conquer in nature

Linear search requires O(n)times Binary search is very best in time and
efficiency. It requires O(log n)times

St. Joseph’s Institute of Technology Page 26 of 30


CS8391- Data Structures Department of IT 2020-2021
5 What is meant by sorting and what are its classifications? C203.5 U
Ordering the data in an increasing or decreasing order according to some
relationship among the data item is called sorting.
a) Internal sorting
b) External sorting
6 What is meant by external sorting?(Nov/Dec 19) C203.5 U
External sorting takes place in the secondary memory of a computer, since the
number of objects to be sorted is too large to fit in main memory. Example:
❖ Merge sort
❖ Multiday Merge
❖ Polyphone Merge
7 What is meant by internal sorting?(Nov/Dec 19) C203.5 U
An internal sort is any data sorting process that takes place entirely within the
main memory of a computer. This is possible whenever the data to be sorted is
small enough to all be held in the main memory.
Example: Bubble sort, Insertion Sort, Heap sort, shell sort, quick sort.
8 What are the various factors to be considered in deciding a sorting C203.5 R
algorithm?
❖ Programming time
❖ Execution time of the program
❖ Memory needed for program environment
9 What is the main idea in Bubble sort? C203.5 R
The basic idea underlying the bubble sort is to pass through the file
sequentially several times. Each pass consists of comparing each element in
the file with its successor (x[i] and x [i+1] and interchanging the two elements
if they are not in proper order.
10 What is meant by selection sort? C203.5 U
It will first find the smallest element in the array and swap it with the element
in the first position, then it will find the second smallest element and swap it
with the element in the second position, and it will keep on doing this until the
entire array is sorted. It is called selection sort because it repeatedly selects the
next-smallest element and swaps it into the right place.
11 What is complexity analysis? C203.5 R
It is the analysis of the amount of memory and time an algorithm requires to
completion.
There are two types of Complexity
❖ Space Complexity: Space complexity of an algorithm is the amount of
memory it needs to run to completion.
❖ Time Complexity: Time complexity is the amount of computer time an
algorithm requires to run to completion.
12 What is insertion sort? C203.5 R
Insertion sort iterates, consuming one input element each repetition, and
growing a sorted output list. Each iteration, insertion sort removes one element
from the input data, finds the location it belongs within the sorted list, and
inserts it there. It repeats until no input elements remain.
13 Mention Different types of popular hash function. C203.5 R
1.Division method 2.Square method 3.Folding method

St. Joseph’s Institute of Technology Page 27 of 30


CS8391- Data Structures Department of IT 2020-2021
14 What are the advantages of selection sort? C203.5 R
❖ It is simple and easy to implement.
❖ It can be used for small data sets.
❖ It is 60 percent more efficient than bubble sort.
15 What are the advantages of Insertion Sort? C203.5 U
❖ It is easy to implement and efficient to use on small sets of data
❖ It performs better than algorithms like selection sort and bubble sort. It is
over twice as fast as the bubble sort and almost 40 percent faster than the
selection sort.
❖ It requires less memory space.
It can be efficiently implemented on data sets that are already substantially
sorted.
16 What is linear search? C203.5 R
Linear search is the simplest searching method, which checks each element in
a list sequentially until it finds a specified element. The input to the linear
search method is a sequence and the item that needs to be searched. The output
is true if the specified item is within the provided sequence or false if it is not
in the sequence. The complexity of linear search is O (n).
17 What is meant by Radix Sort? Or Define Radix Sort.(Nov/Dec 19) C203.5 U
A multiple pass distribution sort algorithm that distributes each item to
a bucket according to part of the item's key beginning with the least significant
part of the key. After each pass, items are collected from the buckets, keeping
the items in order, then redistributed according to the next most significant
part of the key.
18 List some popular sorting methods. C203.5 R
❖ Bubble sort ❖ Quick sort
❖ Bucket sort ❖ Selection sort
❖ Insertion sort ❖ Shell sort
❖ Merge sort
19 What is Hashing? C203.5 R
Hashing is a technique used to identify the location of an identifier ‘x’ in the
memory by some arithmetic functions like f(x), which gives address of ‘x’ in
the table.
20 Explain Hash Function. C203.5 R
Hash Function takes an identifier and computes the address of that identifier in
hash table.
A simple Hash function :
HASH (KEYVALUE) = KEYVALUE MOD TABLESIZE
21 What is meant by Shell sort? C203.5 U
The shell sort, sometimes called the “diminishing increment sort,” improves
on the insertion sort by breaking the original list into a number of smaller
sublists, each of which is sorted using an insertion sort. The unique way that
these sub lists are chosen is the key to the shell sort. Instead of breaking the
list into sub lists of contiguous items, the shell sort uses an increment i,
sometimes called the gap, to create a sub list by choosing all items that
are i items apart.

St. Joseph’s Institute of Technology Page 28 of 30


CS8391- Data Structures Department of IT 2020-2021
22 Define Collision. C203.5 R
When two different keys compute in the same location or address in the hash
table through any one of the hashing function then it is termed as collision.
23 Mention Different types of collision resolving techniques. C203.5 R
The collision resolving techniques are:
❖ Separate chaining.
❖ Open Addressing
❖ Linear Probing
❖ Quadratic Probing
❖ Double Hashing.
24 Define Separate Chaining C203.5 R
Separate Chaining is a technique used to avoid collision, where a linked list is
used to store the keys which fall into the same address in the hash table.
25 Define Open Addressing. C203.5 R
Open addressing is an alternative to resolving collisions with linked lists. In an
open addressing hashing system, if a collision occurs; alternative cells are tried
until an empty cell is found.
26 What are the uses of hash table? C203.5 U
❖ Compilers can use hash table to keep track of declared variable in
source code.
❖ A hash table is useful for any graph theory problem where nodes have
real names instead of numbers.
❖ A third use of hash table is in program that plays games.
❖ On line spell checkers.
27 What is meant by Rehashing? C203.5 U
The rehashing method builds new table that is about twice as big and scan
down the entire original hash table, computing the new hash value for each
element and inserting it in the new table
28 What is double Hashing? C203.5 R
❖ Double hashing is a collision resolving technique in Open Addressed Hash
tables.
❖ Double hashing uses the idea of applying a second hash function to key
when a collision occurs.Double hashing can be done using :
(hash1(key)+i*hash2(key))TABLE_SIZE.Here hash1() and hash2() are
hash functions and TABLE_SIZE is size of hash table.
(We repeat by increasing i when collision occurs)
29 What is the need of Extendible Hashing method? C203.5 An
When open addressing hashing or separate chaining hashing is used, Collisions
could cause several blocks to be examined during a Find, even for a well
distributed hash table. Furthermore, when the table gets too full, an extremely
expensive rehashing step must be performed, which requires O (N) disk
accesses. This problem can be overcomes by using extendible hashing.
30 State the complexity of binary search. (Nov 18) C203.5 U
Time Complexity of Binary Search O (log n)
31 When should we rehash? C203.5 An
❖ When table is half full
❖ When an insertion fails
❖ When load reaches a certain level
St. Joseph’s Institute of Technology Page 29 of 30
CS8391- Data Structures Department of IT 2020-2021
32 What are the advantage and disadvantage of separate chaining and linear C203.5 U
probing? (Nov 18)
Advantages of separate chaining
❖ Simple to Implement
❖ Hash Table Capacity Not Limited
❖ Robust technique
Disadvantages of separate chaining
❖ Cost of maintaining linked list is high.
Advantages of Linear Probing
❖ Requires less memory than Separate Chaining because no pointers are
used.
❖ Simpler to implement than Quadratic or Double Hashing.
Disadvantages of Linear Probing
❖ Elements begin to cluster together in groups of adjacent array locations
❖ Causes "primary clustering" in which there are large blocks of
occupied cells within the hash table. There are "holes" when an
element is removed and it is difficult to determine when to stop
looking through the hash table.
UNIT-V / PART-B
1 With example explain the binary search technique. C203.5 R &Ap
2 Explain the insertion sort with its time complexity. C203.5 R
3 Write an algorithm for Shell Sort Explain with examples.(Nov 18) C203.5 R &Ap
4 Explain separate chaining and extendible hashing. (Nov 18) C203.5 R
5 i) Explain the common collision resolution strategies in open address hashing. C203.5 R &Ap
(Nov 18)
ii) Describe the different hashing functions with an example.
6 Explain the algorithm to perform Radix Sort with Example. C203.5 R &Ap
7 Write the selection sort algorithm and explain with suitable example. Give its C203.5 R &Ap
worst case, Average Case and Best case time complexities. Or Write an
algorithm to implement selection sort with suitable example.(Nov/Dec 19)
8 Explain about collision resolution techniques. C203.5 R
Given input {4371,1323,6173,4199,4344,9679,1989} and a hash function C203.5 R &Ap
h(X) = X (mod 10). Show the resulting (Nov 18)
1.Separate chaining table
2.Open addressing hash table using linear probing
3.Open addressing hash table using Quadratic probing
4.Open addressing hash table with second hash function h2(X)=7-(X mod 7)

10 Explain in detail about Rehashing method. (Nov 18) C203.5 R


11 Distinguish between linear search and binary search. State and explain the C203.5 R &Ap
algorithms for both the search with example. (Nov 18)

12 Write an algorithm for binary search with an example.(Nov/Dec 19) C203.5 R &Ap

St. Joseph’s Institute of Technology Page 30 of 30

You might also like