Hi Adi,
When I was in my engineering days then i faced the same scenario where I was not able to solve or understand the data structures and Algorithm Questions. Here I am explaining How I learnt Data Structures & Algorithm:
What to study?
Step 0 :
Understand about pointers in C++, structures or classes
Learn how to calculate worst case, best case , average case time complexities
Step 1 :
Learn few basic sorting algorithms along with their use case and time complexity.
Bubble sort
Insertion sort
Selection sort
Learn searching algorithms along with time complexity.
Linear Search
Binary Search
Step 2 :
Stack
Queue
Single Linked List (Insert at front,back,middle; Delete at front back middle)
Double Linked List
Circular Linked List
Step 3 :
Learn the following approaches in algorithms
Divide and Conquer (Merger Sort, Quick Sort, Binary Search are some examples)
Greedy method (Knapsack, Prim’s algorithm, Kruskal’s algorithm, Dijkstra, Bellmanford)
Dynamic programming (0/1 Knapsack, Travelling Salesman Problem, Coin change)
Backtracking (N Queens problem)
Step 4 :
Binary Tree
Binary Search Tree
Height of a Tree
Tree Traversal
BFS
DFS
Searching an element
AVL Tree
Hashing
Where to study from?
Learn Data Structures
MIT Introduction to Algorithm