2MARKS (Data Structures Using Python)
2MARKS (Data Structures Using Python)
ENGINEERI NG
PYTHON
2MAR UNIT I
KS
The data structure can be defined as the collection of elements and all
the possible operations which are required for those set of elements. Formally
data structure can be defined as a data structure is a set of domains D, a set
of domains F and a set of axioms A. this triple (D,F,A) denotes the data
structure d.
The non-linear data structure is the kind of data structure in which the
data may be arranged in hierarchical fashion. For example- Trees and graphs.
The linear data structure is the kind of data structure in which the data is
linearly arranged. For example- stacks, queues, linked list.
Following are the areas in which data structures are applied extensively.
Page 2
Operating system- the data structures like priority queues are used for
scheduling the jobs in the operating system.
Compiler design- the tree data structure is used in parsing the source
program. Stack data structure is used in handling recursive calls.
Database management system- The file data structure is used in database
management systems. Sorting and searching techniques can be applied
on these data in the file.
Numerical analysis package- the array is used to perform the
numerical analysis on the given set of data.
Graphics- the array and the linked list are useful in graphics applications.
Artificial intelligence- the graph and trees are used for the applications like
building expression trees, game playing.
7. What is a linked list?
A linked list is a set of nodes where each node has two fields ‘data’ and ‘link’. The data
field is used to store actual piece of information and link field is used to store address of next
node.
The singly linked list has only forward pointer and no backward link is provided. Hence
the traversing of the list is possible only in one direction. Backward traversing is not
possible.
Insertion and deletion operations are less efficient because for inserting the element at
desired position the list needs to be traversed. Similarly, traversing of the list is required
for locating the element which needs to be deleted.
9. Define doubly linked list.
Doubly linked list is a kind of linked list in which each node has two link fields. One link
field stores the address of previous node and the other link field stores the address of the next
node.
Insertion and deletion of data is difficult in arrays on the other hand insertion and deletion
of data is easy in lists.
12. State the properties of LIST abstract data type with suitable example.
In circular list the next pointer of last node points to head node, whereas in doubly linked
list each node has two pointers: one previous pointer and another is next pointer. The main
advantage of circular list over doubly linked list is that with the help of single pointer field we
can access head node quickly. Hence some amount of memory get saved because in circular list
only one pointer is reserved.
14. What are the advantages of doubly linked list over singly linked list?
The doubly linked list has two pointer fields. One field is previous link field and another
is next link field. Because of these two pointer fields we can access any node efficiently whereas
in singly linked list only one pointer field is there which stores forward pointer.
We can have separate coefficient and exponent fields for representing each term of
polynomial. Hence there is no limit for exponent. We can have any number as an exponent.
The linked list makes use of the dynamic memory allocation. Hence the user can allocate
or de allocate the memory as per his requirements. On the other hand, the array makes use of the
static memory location. Hence there are chances of wastage of the memory or shortage of
memory for allocation.
The circular linked list is a kind of linked list in which the last node is connected to the
first node or head node of the linked list.
This node is useful for getting the starting address of the linked list.
19. What is the advantage of an ADT?
Change: the implementation of the ADT can be changed without making changes in the
client program that uses the ADT.
Understandability: ADT specifies what is to be done and does not specify the
implementation details. Hence code becomes easy to understand due to ADT.
Reusability: the ADT can be reused by some program in future.
20. What is static linked list? State any two applications of it.
The linked list structure which can be represented using arrays is called static linked list.
It is easy to implement, hence for creation of small databases, it is useful.
The searching of any record is efficient, hence the applications in which the record need
to be searched quickly, the static linked list are used.
16 MARKS
1. Explain the insertion operation in linked list. How nodes are inserted after a specified node.
9. Explain the operation of traversing linked list. Write the algorithm and give
an example.
UNIT II
2MARKS
1. Define Stack
A Stack is an ordered list in which all insertions (Push operation) and deletion (Pop
operation) are made at one end, called the top. The topmost element is pointed by top. The top is
initialized to -1 when the stack is created that is when the stack is empty. In a stack S = (a1,an),
a1 is the bottom most element and element a is on top of element ai-1. Stack is also referred as
Last In First Out (LIFO) list.
Example: ab+, where a & b are operands and ‘+’ is addition operator.
A-B+C-D+
8. What are the postfix and prefix forms of the expression?
A+B*(C-D)/(P-R)
A Queue is an ordered list in which all insertions take place at one end called the rear, while
all deletions take place at the other end called the front. Rear is initialized to -1 and front is
initialized to 0. Queue is also referred as First In First Out (FIFO) list.
13. Write down the function to insert an element into a queue, in which the queue is
implemented as an array. (May 10)
Q – Queue
if(IsFull(Q))
else {
Q->Size++;
Q->Rear = Q->Rear+1;
Q->Array[ Q->Rear
]=X;
16 MARKS
1. Write an algorithm for Push and Pop operations on Stack using Linked list. (8)
2. Explain the linked list implementation of stack ADT in detail?
3. Define an efficient representation of two stacks in a given area of memory with n words and
explain.
4. Explain linear linked implementation of Stack and Queue?
a. Write an ADT to implement stack of size N using an array. The elements in the
stack are to be integers. The operations to be supported are PUSH, POP and
DISPLAY. Take into account the exceptions of stack overflow and stack
underflow. (8)
b. A circular queue has a size of 5 and has 3 elements 10,20 and 40 where F=2 and
R=4. After inserting 50 and 60, what is the value of F and R. Trying to insert 30 at
this stage what happens? Delete 2 elements from the queue and insert 70, 80 &
90. Show the sequence of steps with necessary diagrams with the value of F & R.
(8 Marks)
5. Write the algorithm for converting infix expression to postfix (polish) expression?
6. Explain in detail about priority queue ADT in detail?
7. Write a function called ‘push’ that takes two parameters: an integer variable and a stack into
which it would push this element and returns a 1 or a 0 to show success of addition or failure.
8. What is a DeQueue? Explain its operation with example?
9. Explain the array implementation of queue ADT in detail?
10. Explain the addition and deletion operations performed on a circular queue with necessary
algorithms.(8) (Nov 09)
UNIT III
2MARKS
1. Define tree?
Trees are non-liner data structure, which is used to store data items in a shorted sequence.
It represents any hierarchical relationship between any data Item. It is a collection of nodes,
which has a distinguish node called the root and zero or more non-empty sub trees T1, T2,
….Tk. each of which are connected by a directed edge from the root.
2. Define Height of tree?
The height of n is the length of the longest path from root to a leaf. Thus all leaves have
height zero. The height of a tree is equal to a height of a root.
For any node n, the depth of n is the length of the unique path from the root to node n.
Thus for a root the depth is always zero.
Page
10
The length of the path is the number of edges on the path. In a tree there is exactly one
path form the root to each node.
5. Define sibling?
Nodes with the same parent are called siblings. The nodes with common parents are
called siblings.
A Binary tree is a finite set of data items which is either empty or consists of a single
item called root and two disjoin binary trees called left sub tree max degree of any node is two.
a. Linear representation.
b. Linked representation
Ø Syntax analysis
Expression tree is also a binary tree in which the leafs terminal nodes or operands and
non-terminal intermediate nodes are operators used for traversal.
Page 11
Visiting of each and every node in the tree exactly is called as tree
1. Inorder traversal
2. Preoder traversal
3. Postorder traversal.
A binary tree is threaded by making all right child pointers that would normally be null
point to the in order successor of the node, and all left child pointers that would normally be null
point to the in order predecessor of the node.
Binary search tree is a binary tree in which for every node X in the tree, the values of all the keys
in its left subtree are smaller than the key value in X and the values of all the keys in its right
subtree are larger than the key value in X.
AVL stands for Adelson-Velskii and Landis. An AVL tree is a binary search tree which has the
following properties:
Search time is O(logn). Addition and deletion operations also take O(logn) time.
Page 12
17. List out the steps involved in deleting a node from a binary search tree.
A B-tree is a tree data structure that keeps data sorted and allows searches, insertions, and
deletions in logarithmic amortized time. Unlike self-balancing binary search trees, it is optimized
for systems that read and write large blocks of data. It is most commonly used in database and
file systems.
A binomial heap is a collection of binomial trees that satisfies the following binomial-heap
properties:
3. Each binomial tree in the collection is heap-ordered in the sense that each
non-root has a key strictly less than the key of its parent
Page 13
.The number of trees in a binomial heap is O(log n).
If all its levels, possible except the last, have maximum number of nodes and if all the
nodes in the last level appear as far left as possible.
16 M ARKS
1. Explain the AVL tree insertion and deletion with suitable example.
2. Describe the algorithms used to perform single and double rotation on AVL
tree. 3.Explain about B-Tree with suitable example.
4. Explain about B+ trees with suitable
algorithm. 5.Write short notes on
i. Binomial heaps
ii. Fibonacci heaps
6. Explain the tree traversal techniques with an example.
7. Construct an expression tree for the expression (a+b*c) + ((d*e+f)*g). Give the outputs when
you apply inorder, preorder and postorder traversals.
8. How to insert and delete an element into a binary search tree and write down the code for the
insertion routine with an example.
9. What are threaded binary tree? Write an algorithm for inserting a node in a threaded binary
tree.
10. Create a binary search tree for the following numbers start from an empty binary search tree.
45,26,10,60,70,30,40 Delete keys 10,60 and 45 one after the other and show the trees at each
stage.
UNIT- IV
Page 14
PART A
2. Define Graph?
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 of edges E to set of pairs of elements
of V. It can also be represented as G=(V, E).
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.
7. What is a loop?
An edge of a graph, which connects to itself, is called a loop or sling.
Outdegree: Number of edges having the node v as root node is the outdegree of the node v.
Page 15
13. What is a cycle or a circuit?
A path which originates and ends in the same node is called a cycle or circuit.
When a directed graph is not strongly connected but the underlying graph is connected, then
the graph is said to be weakly connected.
17. Name the different ways of representing a graph? Give examples (Nov 10)
a. Adjacency matrix
b. Adjacency list
Page 16
6. Finished.
24. What are the two traversal strategies used in traversing a graph?
a. Breadth first search
For a disconnected undirected graph, an articulation point is a vertex removing which increases
number of connected components.
Following are some example graphs with articulation points encircled with red color.
16 MARKS
Page 17
UNIT – V
2 MARKS
Bubble sort
Selection sort
Insertion sort
Shell sort
Quick sort
Radix sort
Heap sort
Merge sort
3. Why bubble sort is called so?
The bubble sort gets its name because as array elements are sorted they gradually
“bubble” to their proper positions, like bubbles rising in a glass of soda.
The bubble sort repeatedly compares adjacent elements of an array. The first and second
elements are compared and swapped if out of order. Then the second and third elements are
compared and swapped if out of order. This sorting process continues until the last two
elements of the array are compared and swapped if out of order.
5. What number is always sorted to the top of the list by each pass of the
Each pass through the list places the next largest value in its proper place. In essence, each item
“bubbles” up to the location where it belongs.
The bubble sort stops when it examines the entire array and finds that no "swaps" are
needed. The bubble sort keeps track of the occurring swaps by the use of a flag.
Page 18
It finds the lowest value from the collection and moves it to the left. This is repeated until
the complete collection is sorted.
8. What is the output of selection sort after the 2nd iteration given the following
sequence? 16 3 46 9 28 14
Ans: 3 9 46 16 28 14
11. How many key comparisons and assignments an insertion sort makes in its worst case?
The worst case performance in insertion sort occurs when the elements of the input array
are in descending order. In that case, the first pass requires one comparison, the second pass
requires two comparisons, third pass three comparisons,….kth pass requires (k-1), and finally the
last pass requires (n-1) comparisons. Therefore, total numbers of comparisons are:
12. Which sorting algorithm is best if the list is already sorted? Why?
Insertion sort as there is no movement of data if the list is already sorted and
13. Which sorting algorithm is easily adaptable to singly linked lists? Why?
Insertion sort is easily adaptable to singly linked list. In this method there is an array link
of pointers, one for each of the original array elements. Thus the array can be thought of as a
linear link list pointed to by an external pointer first initialized to 0. To insert the k th element the
linked list is traversed until the proper position for x[k] is found, or until the end of the list is
reached. At that point x[k] can be inserted into the list by merely adjusting the pointers without
shifting any elements in the array which reduces insertion time.
Page 19
The distance between comparisons decreases as the sorting
algorithm runs until the last phase in which adjacent elements are compared. In each step, the
sortedness of the sequence is increased, until in the last step it is completely sorted.
15. Which of the following sorting methods would be especially suitable to sort alist L
consisting of a sorted list followed by a few “random” elements?
Quick sort is suitable to sort a list L consisting of a sorted list followed by a few “random”
elements.
16. What is the output of quick sort after the 3rd iteration given the following sequence?
24 56 47 35 10 90 82 31
Merge sort performance is much more constrained and predictable than the performance of
quicksort. The price for that reliability is that the average case of merge sort is slower than the
average case of quicksort because the constant factor of merge sort is larger.
20. Define Searching.
Page 20
Searching for data is one of the fundamental fields of computing. Often, the difference
between a fast program and a slow one is the use of a good algorithm for the data set. Naturally,
the use of a hash table or binary search tree will result in more efficient searching, but more often
than not an array or linked list will be used. It is necessary to understand good ways of searching
data structures not designed to support efficient search.
A binary search, also called a dichotomizing search, is a digital scheme for locating a specific
object in a large set. Each object in the set is given a key. The number of keys is always a power
of 2. If there are 32 items in a list, for example, they might be numbered 0 through 31 (binary
00000 through 11111). If there are, say, only 29 items, they can be numbered 0 through 28
(binary 00000 through 11100), with the numbers 29 through31 (binary 11101, 11110, and
11111) as dummy keys.
24. Why do we need a Hash function as a data structure as compared to any other data
structure? (may 10)
Hashing is a technique used for performing insertions, deletions, and finds in constant
average time.
25. What are the important factors to be considered in designing the hash function? (Nov
10)
To avoid lot of collision the table size should be prime
For string data if keys are very long, the hash function will take long to compute.
26.. What do you mean by hash table?
The hash table data structure is merely an array of some fixed size, containing the keys. A
key is a string with an associated value. Each key is mapped into some number in the range 0 to
tablesize-1 and placed in the appropriate cell.
27. What do you mean by hash function?
A hash function is a key to address transformation which acts upon a given key to
compute the relative position of the key in an array. The choice of hash function should be
simple and it must distribute the data evenly. A simple hash function is hash_key=key mod
tablesize.
Page 21
28.What do you mean by separate chaining?
Separate chaining is a collision resolution technique to keep the list of all elements that
hash to the same value. This is called separate chaining because each hash table element is a
separate chain (linked list). Each linked list contains all the elements whose keys hash to the
same index.
16 MARKS
10. Show the result of inserting the keys 2,3,5,7,11,13,15,6,4 into an initially empty
11. what are the advantages and disadvantages of various collision resolution
strategies? (6)
Page 22