সি প্রোগ্রামিং এর বাংলা টিউটরিয়াল
সি প্রোগ্রামিং এর বাংলা টিউটরিয়াল কোর্সে সবাই কে স্বাগতম । এই সিরিজে বেসিক সি প্রোগ্রামিং নিয়ে আলোচনা করা হবে ।
সি প্রোগ্রামিং এর বাংলা টিউটরিয়াল কোর্সে সবাই কে স্বাগতম । এই সিরিজে বেসিক সি প্রোগ্রামিং নিয়ে আলোচনা করা হবে ।
জাভা প্রোগ্রামিং এর বাংলা টিউটরিয়াল কোর্সে সবাই কে স্বাগতম । এই সিরিজে বেসিক জাভা প্রোগ্রামিং নিয়ে আলোচনা করা হবে ।
আনলিমিটেড টিপস এন্ড ট্রিকস পেতে আমাদের সা থেই থাকুন , আর হয়ে যান এক্সপার্ট
![]() |
| বাইনারি সার্চ ট্রি |
![]() |
| বাইনারি ট্রি |
![]() |
| চিত্রঃ ট্রি থেকে অ্যারে তে রুপান্তর |
![]() |
| চিত্রঃ ট্রি |
![]() |
| চিত্রঃ কিউ |
![]() |
| মাল্টিপল কানেকশন |
1: struct Node{
2: int data;
3: struct Node* next;
4: };
5: typedef struct Node node;
6: node* top;
1: int main()
2: {
3: top=NULL;
4: push(10);
5: push(20);
6: push(30);
7: pop();
8: pop();
9: display();
10: return 0;
11: }
1: void push(int x)
2: {
3: node* temp;
4: temp=(node*)malloc(sizeof(node));
5: temp->data=x;
6: temp->next=top;
7: top=temp;
8: }
1: void pop()
2: {
3: node* temp;
4 temp=top;
6: printf("Nothing to pop\n");
7: return;
8:
9: top=top->next;
10: free(temp);
11: }
1: void display()
2: {
3: node* temp;
4: temp=top;
5: while(temp!=NULL){
6: printf("%d ",temp->data);
7: temp=temp->next;
8: }
9: }
| pop যেভাবে কাজ করে (এখানে শুধু প্রথম পপ দেখানো হয়েছে ) |
1: #define MAX_SIZE 5
2: top= -1;
3: int A[MAX_SIZE];
উপরের কাজটি ফাংশনের বাইরের কাজ। গ্লোবালি ডিক্লেয়ার করা হয়েছে যাতে সকল ফাংশন তা ব্যাবহার করতে পারে। লাইন ১ এ- একটি ম্যাক্রো তৈরী করা হয়েছে। যার মান দেওয়া হয়েছে 5. এইটা আসলে আমাদের অ্যারের হাইস্ট সাইজ। দ্বিতীয় লাইনে ইনিসিয়ালি top=-1 দেওয়া হয়েছে। টপ সম্পর্কে আগে পর্বে বর্ণনা করা হয়েছে। আগের পর্ব দেখা যাবে এখান থেকে। Top হল যে বিন্দুতে ইনপুট নেওয়া বন্ধ হয় সেটা। প্রকৃত অর্থে Top আমাদের অ্যারের ইনডেক্স বহন করবে। প্রথমে এর ইনডেক্স -১ ধরলাম তার মানে হল এখনো লিস্ট তৈরী করা হয়নি। এখানে ইন্ডেক্স -১ একটি কাল্পনিক ইনডেক্স কারন অ্যারের ইনডেক্স শুন্য থেকে শুরু হয়।1: void push(int x)
2: {
3: if(top==MAX_SIZE-1){
4: printf("Stack Over flaw\n");
5: return;
6: }
7: top++;
8: A[top]=x;
9: }
প্রথম লাইনে ফাংশনটি প্যারামিটার হিসেবে একটি একটি ইন্টেজার নিবে। সেই ইন্টেজারটি আসলে আমরা স্ট্যাকে প্রবেশ করাবো । যেহেতু আমরা অ্যারের হাইস্ট সাইজ 5 নিলাম সেহেতু আমরা ডাটা ৫ টার বেশী রাখতে পারবোনা। যদি ৫ টার বেশী রাখতে চাই over flaw. এই সিস্টেমকে বলা হয় stack over flaw. যাইহোক ডাটা পাঠানোর জন্য মেইন ফাংশন লিখে ফেললাম।1: int main()
2: {
3: push(10);
4: push(20);
5: push(30);
6: push(40);
7: push(50);
8: pop();
9: display();
10: }
যখন push(10) কল করলাম তখন push ফাংশনে প্রবেশ করবে এবং ৩য় লাইনে কন্ডিশন চেক করবে। যেহেতু top এর মান -1 এবং (5-1)=4 সমান নয় সেহেতু ওই কন্ডিশনে ঢুকবেনা। তারপর সপ্তম লাইনে এসে top এর মান 1 বেড়ে 0 হয়ে যাবে এবং A[0] তে 10 অ্যাসাইন করবে।1: void pop()
2: {
3: if(top==-1){
4: printf("stack is empty\n");
5: return;
6: }
7: top--;
8: }
পপিং এর লজিক হল যেকোনভাবে আমরা ইনডেক্স উড়িয়ে দেব। ইনডেক্স উড়িয়ে দিতে পারলেই আমাদের পপিং শেষ। আমরা আগেই জানি যে যখন top এর মান -1 হয় তখন stack empty থাকে । এবং তখন pop করার মত কিছুইনাই। কন্ডিশনে সেইটা দেওয়া আছে।1: void display()
2: {
3: int i;
4: for(i=0;i<=top;i++){
5: printf("%d ",A[i]);
6: }
7: }
এখানে আর কিছুই বলার নাই । শুন্য থেকে করে টপের হাইস্ট ভেলু পর্যন্ত প্রিন্ট দিবে। একবার pop করার পর top= 3| মেমরির ভিবিন্ন অংশ |
![]() |
| চেয়ারের স্ট্যাক |