0% found this document useful (0 votes)
2 views

Data Structure 2

Uploaded by

ranajitbarik071
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Data Structure 2

Uploaded by

ranajitbarik071
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

​Here are concise explanations for your queries:

1. Difference between Linear & Non-Linear Data Structures

Linear Data Structure: Data is organized sequentially (e.g., Arrays, Stacks, Queues).
Non-Linear Data Structure: Data is organized hierarchically or non-linearly (e.g., Trees, Graphs).

2. Push and Pop Algorithms (Stack Operations)

Push (Insert): Add an element to the top of the stack.

Algorithm:
1. If TOP == MAX - 1, then Overflow.
2. Else, TOP = TOP + 1; STACK[TOP] = Element.

Pop (Remove): Remove the top element from the stack.

Algorithm:
1. If TOP == -1, then Underflow.
2. Else, Element = STACK[TOP]; TOP = TOP - 1.

3. Overflow and Underflow Situations

Overflow: Occurs when adding an element exceeds the structure's capacity (e.g., pushing into a full stack).
Underflow: Occurs when trying to remove an element from an empty structure (e.g., popping an empty stack).

4. Difference Between Stack and Array

Stack: Follows LIFO (Last In, First Out). Operations are restricted to one end (top).
Array: Elements are indexed; supports random access. No restrictions on operations.

5. Circular Queue and Its Advantages Over Linear Queue

Circular Queue: End of the queue connects to the front, making it circular.
Advantages: Utilizes space efficiently, avoids "queue full" issues in a partially empty array.

6. Priority Queue and Dequeue

Priority Queue: Elements are dequeued based on priority rather than order of arrival.
Dequeue (Double-Ended Queue): Elements can be added/removed from both ends.

7. Postfix Evaluation

Postfix notation eliminates the need for parentheses. Use a stack to evaluate.
Example: 3 4 + evaluates as (3 + 4).

8. Infix to Postfix & Prefix Conversion

Infix: Operators between operands (e.g., A + B).


Postfix: Operators after operands (e.g., AB+).
Prefix: Operators before operands (e.g., +AB).

9. Singly Linked List & Advantages

Singly Linked List: Nodes contain data and a pointer to the next node.
Advantages: Dynamic size, efficient insertion/deletion.

10. Tower of Hanoi (Short Note)

A puzzle involving moving disks from one rod to another, following these rules:
1. Only one disk moved at a time.
2. A larger disk cannot be placed on a smaller disk.

11. Algorithm to Insert a Node at Beginning, Middle, and Last

Beginning:

1. Create a new node.


2. Point new node’s next to the head.
3. Update head to the new node.

Middle:

1. Traverse to the desired position.


2. Adjust pointers to insert the new node.

Last:

1. Traverse to the last node.


2. Point last node's next to the new node.

12. Binary Tree

A tree where each node has at most two children: left and right.

13. Strictly, Full, & Complete Binary Trees

Strictly Binary Tree: Each node has 0 or 2 children.


Full Binary Tree: All levels are completely filled except possibly the last.
Complete Binary Tree: All levels are filled, and the last level has nodes as far left as possible.

13. Binary Tree Traversals

Given a binary tree:

A
/ \
B C
/ \ \
D E F

In-order (LNR): Traverse left subtree, root, right subtree.


Output: D, B, E, A, C, F
Pre-order (NLR): Traverse root, left subtree, right subtree.
Output: A, B, D, E, C, F
Post-order (LRN): Traverse left subtree, right subtree, root.
Output: D, E, B, F, C, A

14. Short Note on Abstract Data Type (ADT)

An ADT is a data structure defined by its behavior from the user's perspective.
Includes operations but not implementation details.
Example: Stack ADT with operations like Push(), Pop(), IsEmpty().

15. Define B-Tree

A B-Tree is a self-balancing search tree where nodes can have multiple children.
Ensures balanced height.
Used in databases and file systems.
Properties:
Each node contains t-1 to 2t-1 keys, where t is the order.
Leaves are at the same level.

16. Construct an AVL Tree

Steps to construct:
1. Insert nodes while maintaining a balanced height difference of ≤ 1 between subtrees.
2. Perform rotations (LL, RR, LR, RL) as needed to balance.
Example: Insert 10, 20, 30.

Insert 10.
Insert 20. No imbalance.
Insert 30. Imbalance at root (LL rotation).
Resulting tree:

20
/ \
10 30

17. Construct a Binary Tree Given In-order & Pre-order Traversals

Given:

In-order: D, B, E, A, C, F
Pre-order: A, B, D, E, C, F
Steps:

1. First element of pre-order is root (A).


2. Split in-order into left (D, B, E) and right (C, F) subtrees based on root.
3. Recursively construct subtrees.

Constructed tree:

A
/ \
B C
/ \ \
D E F

18. Polynomial Representation Using Linked List

A polynomial can be represented as a linked list where each node contains:


Coefficient
Exponent
Pointer to the next term

2
Example: 3𝑥 + 4𝑥 + 5

Node1: Coefficient = 3, Exponent = 2 → Node2: Coefficient = 4, Exponent = 1 → Node3: Coefficient = 5,

Operations:

Addition/Subtraction: Traverse, match exponents, and adjust coefficients.


Multiplication: Multiply coefficients, add exponents, and combine terms.

Let me know if you want detailed construction examples or algorithms!

You might also like