চাকরির প্রস্তুতিডেটা স্ট্রাকচার
ডেটা স্ট্রাকচার ও অ্যালগরিদম ইন্টারভিউ প্রশ্ন

লিংকড লিস্ট, ট্রি, গ্রাফ, সোর্টিং ও ডাইনামিক প্রোগ্রামিং — যেসব সমস্যা প্রায় প্রতিটি বোর্ডে ঘুরেফিরে আসে।
ডেটা স্ট্রাকচার আর অ্যালগরিদম — নাম শুনলে কঠিন মনে হয়, কিন্তু ইন্টারভিউতে যা আসে তা মোটামুটি নির্দিষ্ট কয়েকটা জিনিস।
লিংকড লিস্ট, ট্রি, গ্রাফ, সোর্টিং আর ডাইনামিক প্রোগ্রামিং — এই পাঁচটা ভালোভাবে বুঝলে বেশিরভাগ প্রশ্ন সামলে নিতে পারবেন। নিচে প্রতিটির সঙ্গে বাস্তব একটা সমস্যা দেওয়া আছে।
সমস্যাগুলো
একটি লিঙ্কড লিস্ট রিভার্স করার জন্য একটি প্রোগ্রাম লিখুন। (Write a program to reverse a linked list.)
বাইনারি ট্রি ইনঅর্ডার ট্রাভার্সাল প্রিন্ট করার জন্য একটি ফাংশন লিখুন। (Write a function to print the inorder traversal of a binary tree.)
লিংকড লিস্টের মধ্য দিয়ে সার্চ: একটি লিংকড লিস্টে একটি নির্দিষ্ট মান খুঁজুন। (Search through linked list: Find a specific value in a linked list.)
যেভাবে জিজ্ঞেস করা হয়একটি লিংকড লিস্টে 5 নম্বরটি রয়েছে কিনা তা পরীক্ষা করুন। (Check if the number 5 is in a linked list.)
বাইনারি সার্চ: একটি সাজানো অ্যারেতে বাইনারি সার্চ প্রয়োগ করুন। (Binary Search: Apply binary search to a sorted array.)
যেভাবে জিজ্ঞেস করা হয়অ্যারে [1, 3, 5, 7, 9] এ সংখ্যা 5 খুঁজুন। (Find the number 5 in the array [1, 3, 5, 7, 9].)
অ্যারে থেকে ডুপ্লিকেট অপসারণ: একটি অ্যারে থেকে সমস্ত ডুপ্লিকেট উপাদান অপসারণ করুন। (Remove duplicates from array: Remove all duplicate elements from an array.)
যেভাবে জিজ্ঞেস করা হয়অ্যারে [1, 2, 2, 3, 4, 4, 5] থেকে ডুপ্লিকেট অপসারণ করুন। (Remove duplicates from array [1, 2, 2, 3, 4, 4, 5].)
স্ট্যাকের ব্যবহার: স্ট্যাক ব্যবহার করে একটি ইনফিক্স এক্সপ্রেশনকে postfix (পোস্টফিক্স) এক্সপ্রেশনে রূপান্তর করুন। (Using the stack: Convert an infix expression to a postfix expression using the stack.)
যেভাবে জিজ্ঞেস করা হয়ইনফিক্স এক্সপ্রেশন '(A+B)*(C-D)' কে postfix এক্সপ্রেশনে রূপান্তর করুন। (Convert infix expression '(A+B)*(C-D)' to postfix expression.)
হ্যাশ টেবিলের ব্যবহার: একটি হ্যাশ টেবিল ব্যবহার করে একটি অ্যারেতে ফ্রিকোয়েন্সি গণনা করুন। (Use of Hash Tables: Calculate frequencies in an array using a hash table.)
যেভাবে জিজ্ঞেস করা হয়অ্যারে [1, 2, 2, 3, 3, 3] এর ফ্রিকোয়েন্সি গণনা করুন। (Calculate the frequency of the array [1, 2, 2, 3, 3, 3].)
ডিপথ ফার্স্ট সার্চ (DFS) ও ব্রেডথ ফার্স্ট সার্চ (BFS): একটি গ্রাফে DFS এবং BFS প্রয়োগ করুন। (Depth First Search (DFS) and Breadth First Search (BFS): Apply DFS and BFS to a graph.)
যেভাবে জিজ্ঞেস করা হয়গ্রাফের DFS এবং BFS ট্রাভার্সাল প্রক্রিয়া প্রদর্শন করুন। (Demonstrate the DFS and BFS traversal processes of graphs.)
মার্জ সোর্ট (Merge Sort): মার্জ সোর্ট অ্যালগরিদম প্রয়োগ করুন। (Implement the merge sort algorithm.)
যেভাবে জিজ্ঞেস করা হয়অ্যারে [3, 1, 4, 1, 5, 9, 2] মার্জ সোর্টের মাধ্যমে সাজান। (Sort array [3, 1, 4, 1, 5, 9, 2] by merge sort.)
কুইক সোর্ট (Quick Sort): কুইক সোর্ট অ্যালগরিদম প্রয়োগ করুন। (Implement quick sort algorithm.)
যেভাবে জিজ্ঞেস করা হয়অ্যারে [10, 7, 8, 9, 1, 5] কুইক সোর্টের মাধ্যমে সাজান। (Sort the array [10, 7, 8, 9, 1, 5] by quick sort.)
ডাইনামিক প্রোগ্রামিং (Dynamic Programming): একটি নির্দিষ্ট সমস্যায় ডাইনামিক প্রোগ্রামিং প্রয়োগ করুন, যেমন 'নাপ স্যাচিং' বা 'ফিবোনাচ্চি সিরিজ'। (Apply dynamic programming to a specific problem, such as 'Knap Satching' or 'Fibonacci Series'.)
যেভাবে জিজ্ঞেস করা হয়ফিবোনাচ্চি সিরিজের n-তম মান ডাইনামিক প্রোগ্রামিং ব্যবহার করে নির্ণয় করুন। (Determine the nth value of the Fibonacci series using dynamic programming.)
গ্রাফের শার্টেস্ট পাথ (Dijkstra's Algorithm): গ্রাফে শার্টেস্ট পাথ নির্ণয় করার জন্য ডাইকস্ট্রা অ্যালগরিদম প্রয়োগ করুন।
যেভাবে জিজ্ঞেস করা হয়গ্রাফে একটি নির্দিষ্ট শীর্ষ থেকে অন্যান্য শীর্ষে শার্টেস্ট পাথ নির্ণয় করুন।
এই রাউন্ডের জন্য পরামর্শ
- প্রতিটি সমস্যার পরে নিজেকে জিজ্ঞেস করুন: এর টাইম কমপ্লেক্সিটি কত? বোর্ড এটিই পরের প্রশ্ন করবে।
- একদিনে সব শেষ করার চেষ্টা করবেন না। দিনে দুটি করে সমস্যা, কিন্তু নিয়মিত।