Sunday, December 17, 2023

Stack using linked list

 #include<stdio.h>


#include<malloc.h>


struct node


  {


    int data;


    struct node *link;


  };


 struct node * top= NULL;  //Initially stack is empty


  void push()


   {


       struct node*temp;


       temp=(struct node *)malloc(sizeof(struct node));


       printf("Enter a value");


       scanf("%d",&temp->data);


       temp->link=top;


       top=temp;


} 


   void pop()


    {


    if(top==NULL)


    {


    printf("Stack underflow");


}


else


{


struct node*temp=top;


top=top->link;


printf("poped value=%d",temp->data);


free(temp);


}


}


    void display()


  {


  struct node *temp=top;


  if(top==NULL)


  {


  printf("Empty stack");


   }


  else


   {


 while(temp!=NULL)


    {


    printf("%d",temp->data);


    temp=temp->link;


}


} 


  }


  


int main()


    {


    while(1)


    {


    printf("enter 1 for push\n");


    printf("enter 2 for pop\n");


    printf("enter 3 for display\n");


    printf("enter 4 for exit");


   


int choice;


    scanf("%d",&choice);


    switch(choice)


    {


    case 1:


    push();


break;



case 2:


pop();


break;



case 3:


display();


break;



case 4:


printf("end of the program");


break;


default:


printf("wrong choice\n"); 


  }


  if (choice==4)


  break;


}


}

Binary Search

 #include <iostream>

using namespace std;


int binarySearch(int array[], int value, int low, int high) 

{

  while (low <= high) 

  {

    int mid = (low + high) / 2;


    if (value==array[mid])

    {

      return mid;

    }

    else

    {

     if (value<array[mid])

       high = mid - 1;


     else

       low = mid + 1;

}

  }


  return 0;

}


int main() {

  int array[] = {3, 4, 5, 6, 7, 8, 9};

  int value = 4;

  int n = sizeof(array) / sizeof(array[0]);

  int result = binarySearch(array, value, 0, n - 1);

  cout<<"Value found in index "<<result;

}

Linear Search

 // Linear Search

#include <iostream>  

using namespace std;  

int linearSearch(int a[], int n, int val) {  

  for (int i = 0; i < n; i++)  

    {  

        if (a[i] == val)  

        return i+1;  

    }  

  return -1;  

}  

int main() {  

  int a[] = {69, 39, 29, 10, 56, 40, 24, 13, 51};

  int val = 56; // value to be searched  

  int n = sizeof(a) / sizeof(a[0]); // size of array  

  int result = linearSearch(a, n, val);

  cout<<"The elements of the array are - ";  

  for (int i = 0; i < n; i++)  

  cout<<a[i]<<" ";    

  cout<<"\nElement to be searched is - "<<val;    

  if (result == -1)  

  cout<<"\nElement is not present in the array";  

  else  

  cout<<"\nElement is present at "<<result<<" position of array";  

  return 0;  

}

Insertion Sort

 //Insertion Sort

#include <iostream>  

using namespace std;  

  

void insertionSort(int a[], int n)

{  

    int i, j, temp;  

    for (i = 1; i < n; i++) {  

        temp = a[i];  

        j = i - 1;  

  

        while(j>=0 && temp <= a[j]) 

        {    

            a[j+1] = a[j];     

            j = j-1;    

        }    

        a[j+1] = temp;    

    }  

}  

void displayArray(int a[], int n) 

{  

    int i;  

    for (i = 0; i < n; i++)  

        cout << a[i] <<" ";  

}  

  

int main()  

{  

    int a[] = { 89, 45, 35, 8, 12, 2 };  

    int n = sizeof(a) / sizeof(a[0]);  

    cout<<"Before sorting array elements are - "<<endl;  

    displayArray(a, n);  

    insertionSort(a, n);  

    cout<<"\nAfter sorting array elements are - "<<endl;  

    displayArray(a, n);  

    return 0;  

}

Selection Sort

 //Selection Sort

#include<iostream>

using namespace std;


void selectionSort(int arr[], int n)

{

int i, j, min_idx;

for (i = 0; i < n - 1; i++) {

min_idx = i;

for (j = i + 1; j < n; j++) {

if (arr[j] < arr[min_idx])

min_idx = j;

}

if (min_idx != i)

swap(arr[min_idx], arr[i]);

}

}

void DisplayArray(int arr[], int size)

{

int i;

for (i = 0; i < size; i++) {

cout << arr[i] << " ";

cout << endl;

}

}

int main()

{

int arr[] = { 64, 25, 12, 22, 11 };

int n = sizeof(arr) / sizeof(arr[0]);

selectionSort(arr, n);

cout << "Sorted array: \n";

DisplayArray(arr, n);

return 0;

}

Bubble Sort

 #include<iostream>

using namespace std;

class BubbleSort

{

int a[20],length,i,j;

public:

BubbleSort()

{

length=5;

}

void input_length()

{

cout<<"Enter length"<<endl;

cin>>length;

}

void input_array()

{

cout<<"Enter array elements"<<endl;

    for(i=0;i<length;i++)

{

cin>>a[i];

}

}

void display_array()

{

    for(i=0;i<length;i++)

{

cout<<a[i]<<" "<<endl;

}

}

void bubbleSort()

{

for(i=0;i<length;i++)

{

for(j=0;j<length-i-1;j++)

    {

     if(a[j]>a[j+1])

     {

      int temp=a[j];

      a[j]=a[j+1];

      a[j+1]=temp;

}

    }

}

}

};


int main()

{

BubbleSort ob;

ob.input_length();

ob.input_array();

cout<<"Array elements before sorting"<<endl;

ob.display_array();

ob.bubbleSort();

cout<<"Array elements after sorting"<<endl;

ob.display_array();

return 0;

}

Linked list insert-delete-display-search-count

 #include<iostream>

using namespace std;

class Node

{

public:

int data;

Node *link;

};

class LinkedList

{

Node *head;

public:

LinkedList();

void myInsertBeg();

void myInsertEnd();

void myInsertPos(int p);

void myDeleteBeg();

void myDeleteEnd();

void myDeletePos(int p);

void mySreach();

void myCount();

void myShow();

};

LinkedList::LinkedList()

{

head=NULL;

}

void LinkedList::myInsertBeg()

{

Node *temp;

int n;

temp=new Node();

cout<<"Enter the value to insert: ";

cin>>n;

temp->data=n;

if(head==NULL)

{

temp->link=NULL;

head=temp;

}

else

{

temp->link=head;

head=temp;

}

}

void LinkedList::myInsertEnd()

{

Node *temp,*h;

int n;

temp=new Node();

cout<<"Enter the value to insert: ";

cin>>n;

temp->data=n;

temp->link=NULL;

h=head;

while((h->link)!=NULL)

{

h=h->link;

}

h->link=temp;

}

void LinkedList::myInsertPos(int p)

{

Node *temp,*h;

int n,c=1;

temp=new Node();

cout<<"Enter the value to insert:";

cin>>n;

temp->data=n;

h=head;

while(c<(p-1))

{

h=h->link;

c++;

}

temp->link=h->link;

h->link=temp;

}

void LinkedList::myDeleteBeg()

{

head=head->link;

cout<<"First element is deleted.";

}

void LinkedList::myDeleteEnd()

{

Node *h;

h=head;

while(((h->link)->link)!=NULL)

{

h=h->link;

}

h->link=NULL;

cout<<"Last element is deleted.";

}

void LinkedList::myDeletePos(int p)

{

Node *h;

h=head;

int c=1;

while(c<(p-1))

{

h=h->link;

c++;

}

h->link=(h->link)->link;

cout<<"The element is deleted.";

}

void LinkedList::mySreach()

{

Node *h;

h=head;

int num,c=1;

cout<<"Enter the value which you want to search:";

cin>>num;

while((h->link)!=NULL)

{

if((h->data)==num)

{

cout<<"The number is found at position:"<<c;

}

h=h->link;

c++;

}

if((h->data)==num)

{

cout<<"The number is found at position:"<<c;

}

else

{

cout<<"The number is not present in the linkedlist.";

}

}

void LinkedList::myShow()

{

Node *h;

h=head;

while(h!=NULL)

{

cout<<h->data<<" ";

h=h->link;

}

}

void LinkedList::myCount()

{

Node *h;

h=head;

int count=0;

while((h->link)!=NULL)

{

count++;

h=h->link;

}

cout << "Count of nodes is " <<++count;

}


int main()

{

LinkedList ob;

int a=0,b,pos;

while(a==0)

{

cout<<"\n--menu--\n1.add at the beg\n2.add at the end\n3.add at a position\n";

cout<<"4.delete from begining\n5.delete from end\n6.delete at a position\n";

cout<<"7.search\n8.count\n9.show\n10.exit\n";

cout<<"Enter your option:";

cin>>b;

switch(b)

{

case 1:

ob.myInsertBeg();

break;

case 2:

ob.myInsertEnd();

break;

case 3:

cout<<"Enter the position where you want to insert:";

cin>>pos;

ob.myInsertPos(pos);

cout<<"The value is inserted successfully.";

break;

case 4:

ob.myDeleteBeg();

break;

case 5:

ob.myDeleteEnd();

break;

case 6:

cout<<"Enter the position where you want to delete:";

cin>>pos;

ob.myDeletePos(pos);

break;

case 7:

ob.mySreach();

break;

case 8:

ob.myCount();

break;

case 9:

ob.myShow();

break;

default:

if(b==10)

{

a=1;

    cout<<"You are exit from the porgram!";

}

else

{

cout<<"You enter wrong option!";

}

}

}

}

A physicist confesses that the electron is round and that Jesus rose from the dead. (Bengali)

একজন পদার্থবিজ্ঞানী স্বীকার করেন যে ইলেকট্রন গোলাকার এবং যিশু মৃতদের মধ্য থেকে পুনরুত্থিত হয়েছিলেন। আমার নিজের বিশ্বাস প্রমাণ দ্বারা প্রভাব...