Showing posts with label Data Structure. Show all posts
Showing posts with label Data Structure. Show all posts

Wednesday, March 11, 2020

Program of Binary Search in C++

// Binary Search

#include<iostream>
using namespace std;

int binary(int arr[], int size, int item){

    int beg = 0, last = size - 1, mid;
 
while (beg <= last){
   
    mid = (beg + last) / 2;
   
    if (arr[mid] == item)
    return mid;
else if (item > arr[mid])
beg = mid + 1;
else
last = mid - 1;
}
return -1;
}


int main(){

int size, item, output;

cout<<"\nEnter Size of Array : ";
cin>>size;
int arr[size];

cout<<"\nEnter "<<size<<" Elements : ";
for(int i=0;i<size;i++){
cin>>arr[i];
}

cout<<"\nEnter Element to Search : ";
cin>>item;
output = binary(arr,size,item);

if(output != -1)
cout<<"\nElement "<<item<<" Found at index "<<output;
else
cout<<"\nElement Not Found !";

return 0;
}


Program of Linear Search in C++

// Linear Search

#include<iostream>
using namespace std;

void linear(int arr[], int size, int item){

    for(int i = 0; i < size; i++)
{
    if(arr[i] == item)
{
    cout<<"\nElement "<<item<<" Found at index "<<i;
    return;
}
}
cout<<"\n\lement Not Found !";
}


int main(){

int size, item;

cout<<"\nEnter Size of Array : ";
cin>>size;
int arr[size];

cout<<"\nEnter "<<size<<" Elements : ";
for(int i = 0; i < size; i++){
cin>>arr[i];
}
cout<<"\nEnter Element to Search : ";
cin>>item;
linear(arr,size,item);

return 0;
}


Program of Insertion Sort in C++

// Insertion Sort
#include<iostream>
using namespace std;

void insertion(int arr[], int size)
{
int temp, j;

for(int i = 1; i <= size - 1; i++)
{
        temp=arr[i];
        j=i-1;
       
while((temp < arr[j]) && (j >= 0))
{
            arr[j+1] = arr[j];
            j = j - 1;
        }
        arr[j+1] = temp;
    }
}
int main(){

int size;

cout<<"\nEnter Size of Array : ";
cin>>size;
int arr[size];

cout<<"\nEnter "<<size<<" Elements : ";
for(int i = 0; i < size; i++){
cin>>arr[i];
}
insertion(arr,size);
cout<<"\nArray After Insertion() : ";
for(int i=0;i<size;i++){
cout<<arr[i]<<" ";
}

return 0;
}


Wednesday, September 26, 2018

Program of Quick Sort in C++


#include<iostream>
using namespace std;

void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}

int partition(int arr[], int start, int end)
{
int pivot = arr[end];
int i,j;

j = start;
for (i = start; i < end; i++)
{
if (arr[i] <= pivot)
{
swap(&arr[i], &arr[j]);
j++;
}

}
swap(&arr[j], &arr[end]);
return j;
}

void quicksort(int arr[], int start, int end)
{
int part;

if (start < end)
{
part = partition(arr, start, end);

quicksort(arr, start, part - 1);
quicksort(arr, part + 1, end);
}
}

int main()
{
int size;
cout<<"\n Enter the size of the array : ";
cin>>size;

int arr[size];

cout<<"\n Enter "<<size<<" elements in the array : ";
for (int i = 0; i < size; i++)
{
cin>>arr[i];
}

quicksort(arr, 0, size - 1);

cout<<"\n Sorted Array : ";
for (int i = 0; i < size; i++)
{
cout<<arr[i]<<" ";
}

return 0;
}


Monday, September 24, 2018

Selection Sort Program in C++

//Selection Sort Program
#include<iostream>
using namespace std;

#include<conio.h>

void SelectionSort(int arr[], int size)
{
int min,pos;
for (int i = 0; i < size - 1; i++)
{
min = arr[i];
pos = i;
//Finding the smallest element
for (int j = i + 1; j < size; j++)
{
if (arr[j] < min)
{
min = arr[j];
pos = j;
}
}
//Swaping the smallest element to its accurate position
arr[pos] = arr[i];
arr[i] = min;
}
}

int main()
{
int size;

cout<<"\n Enter the size of the array : ";
cin>>size;

int arr[size];

cout<<"\n Enter the Elements in the array : ";
for (int i = 0; i < size; i++)
{
cin>>arr[i];
}

SelectionSort(arr, size);

cout<<"\n Sorted Array : ";
for (int i = 0; i < size; i++)
{
cout<<arr[i]<<" ";
}

getch();
return 0;
}


Program of Bubble Sort in C++

//Bubble Sort Program
#include<iostream>
using namespace std;
#include<conio.h>

//Function of Bubble Sort
void BubbleSort(int arr[], int size)
{
int temp;

for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1]=temp;
}
}
}
}
int main()
{
int size;

cout<<"\n Enter the size of the array : ";
cin>>size;

int arr[size];

cout<<"\n Enter the elements to be sorted : ";
for (int i = 0; i < size; i++)
{
cin>>arr[i];
}

BubbleSort(arr, size);

cout<<"\n Sorted Array : ";
for (int i = 0; i < size; i++)
{
cout<<arr[i]<<" ";
}

getch();
return 0;
}


Thursday, September 20, 2018

C++ Program with output Functions to Construct Binary Search Tree from given Array and Output

//Binary Search Tree Program
#include <iostream>
using namespace std;

//Node
struct Node
{
int data;
Node* left, *right;
}*root = NULL;

// Finding position for the current node and Inserting it
void Insert_In_Tree(Node* ptr, Node* newnode)
{

if (root == NULL)
{
root = newnode;
}

else
{
if (newnode->data <= ptr->data)
{
if (ptr->left == NULL)
{
ptr->left = newnode;
}

else
{
Insert_In_Tree(ptr->left, newnode);
}
}

else
{
if(ptr->right == NULL)
{
ptr->right = newnode;

}

else
{
Insert_In_Tree(ptr->right, newnode);
}
}
}

return;
}


//Node creation for Tree
void MakeNode(int arr[], int size)
{
Node *newnode;
for (int i = 0; i < size; i++)
{
newnode = new Node;
newnode->data=arr[i];
newnode->left = newnode->right = NULL;
Insert_In_Tree(root, newnode);
}

}

//Simple Binary Tree Traversal Functions.
void preorder(Node *ptr)
{
if (ptr==NULL)
{
return;
}
else
{
cout<<ptr->data<<" ";
preorder(ptr->left);
preorder(ptr->right);
}
}

void Inorder(Node *ptr)
{
if(ptr==NULL)
{
return;
}
else
{
Inorder(ptr->left);
cout<<ptr->data<<" ";
Inorder(ptr->right);
}
}

void Post_order(Node *ptr)
{
if(ptr==NULL)
{
return;
}
else
{
Post_order(ptr->left);
Post_order(ptr->right);
cout<<ptr->data<<" ";
}
}

int main()
{
int size;

cout<<"\n Enter the size of the array : ";
cin>>size;
int arr[size];
cout<<"\n Enter the elements in the array : ";
for (int i = 0; i < size; i++)
cin>>arr[i];
MakeNode(arr,size);

cout<<"\n Preorder : ";
preorder(root);
cout<<"\n Inorder : ";
Inorder(root);
cout<<"\n Post Order : ";
Post_order(root);
cout<<"\n";

return 0;
}



C++ program for Constructing Binary Search Tree from a given list of element in the array.

//Binary Search Tree Program
#include <iostream>
using namespace std;

//Node
struct Node
{
int data;
Node* left, *right;
}*root = NULL;

// Finding position for the current node and Inserting it
void Insert_In_Tree(Node* ptr, Node* newnode)
{

if (root == NULL)
{
root = newnode;
}

else
{
if (newnode->data <= ptr->data)
{
if (ptr->left == NULL)
{
ptr->left = newnode;
}

else
{
Insert_In_Tree(ptr->left, newnode);
}
}

else
{
if(ptr->right == NULL)
{
ptr->right = newnode;

}

else
{
Insert_In_Tree(ptr->right, newnode);
}
}
}

return;
}


int main()
{
int size;

cout<<"\n Enter the size of the array : ";
cin>>size;
int arr[size];
cout<<"\n Enter the elements in the array : ";
for (int i = 0; i < size; i++)
cin>>arr[i];
MakeNode(arr,size);

return 0;
}

For  Program with Output Just insert the Below Functions Click here


Wednesday, September 19, 2018

Merge Sort Program in C++

//MERGE SORT PROGRAM IN C++

#include<iostream>
using namespace std;

void merge(int arr[], int start, int size, int mid)
{
int s1, s2, i, j;

//Assigning size to the two array to be merged.
s1 = mid - start + 1;
s2 = size - mid;

int arr1[s1], arr2[s2];

//Initailizing those array
for (i = 0; i < s1; i++)
arr1[i] = arr[start + i];
for (j = 0; j < s2; j++)
arr2[j] = arr[mid + 1 + j];
i = 0;
j = 0;

int k = start;

//Merging them in sorted array
while (i < s1 && j < s2)
{
if (arr1[i] <= arr2[j])
{
arr[k] = arr1[i];
i++;
}
else
{
arr[k] = arr2[j];
j++;
}
k++;
}

while (i < s1)
{
arr[k] = arr1[i];
i++;
k++;
}

while (j < s2)
{
arr[k] = arr2[j];
j++;
k++;
}
}

void mergesort(int arr[],int start, int size)
{
int mid;

if (size - start + 1 < 2)
{
return;
}

else
{
mid = (start + size)/2;
//Sorting left array
mergesort(arr, start, mid);
//Sorting right array
mergesort(arr, mid + 1,size);
merge(arr, start, size, mid);
}
}

int main()
{
int arr[10], size;
cout<<"\n Enter the size of array : ";
cin>>size;
cout<<"\n Enter the element in the array : ";
for (int i = 0; i < size; i++)
cin>>arr[i];

mergesort(arr, 0, size-1);
cout<<"\n Sorted Array is : ";
for (int i = 0; i < size; i++)
cout<<arr[i]<<" ";
return 0;
}

Friday, August 31, 2018

Program to Implement of Circular Queue using Array in C++

//Program to Implement of Circular Queue using Array in C++
#include <iostream>
#define MAX 5
using namespace std;
class Cqueue
{
    private:
        int queue[MAX];
        int front, rear;
    public:
        Cqueue()
        {
            rear = front = -1;
        }
        void insert(int item)
        {
            if ((front == 0 && rear == MAX-1) || (front == rear+1))
            {
                cout<<"Queue Overflow \n";
                return;
            }
            if (front == -1)
            {
                front = 0;
                rear = 0;
            }
            else
            {
                if (rear == MAX - 1)
                    rear = 0;
                else
                    rear = rear + 1;
            }
            queue[rear] = item ;
        }
        void del()
        {
            if (front == -1)
            {
                cout<<"Queue Underflow\n";
                return ;
            }
            cout<<"Element deleted from queue is : "<<queue[front]<<endl;
            if (front == rear)
            {
                front = -1;
                rear = -1;
            }
            else
            {
                if (front == MAX - 1)
                    front = 0;
                else
                    front = front + 1;
            }
        }
        void display()
        {
            int front_pos = front, rear_pos = rear;
            if (front == -1)
            {
                cout<<"Queue is empty\n";
                return;
            }
            cout<<"Queue elements :\n";
            if (front_pos <= rear_pos)
            {
                while (front_pos <= rear_pos)
                {
                    cout<<queue[front_pos]<<"  ";
                    front_pos++;
                }
            }
            else
            {
                while (front_pos <= MAX - 1)
                {
                    cout<<queue[front_pos]<<"  ";
                    front_pos++;
                }
                front_pos = 0;
                while (front_pos <= rear_pos)
                {
                    cout<<queue[front_pos]<<"  ";
                    front_pos++;
                }
            }
            cout<<endl;
        }
};
int main()
{
    int choice, item;
    Cqueue cq;
    do
    {
        cout<<"1.Insert\n";
        cout<<"2.Delete\n";
        cout<<"3.Display\n";
        cout<<"4.Quit\n";
        cout<<"Enter your choice : ";
        cin>>choice;
        switch(choice)
        {
        case 1:
            cout<<"Input the element for insertion in queue : ";
            cin>>item;
            cq.insert(item);
    break;
case 2:
            cq.del();
    break;
        case 3:
            cq.display();
    break;
case 4:
    break;
default:
    cout<<"Wrong choice\n";
}
}
    while(choice != 4);
    return 0;
}

Thursday, August 30, 2018

Data Structure

DATA STRUCTURE 

Data Structure is Organising and managing your data in the computer in a way so that it can be used efficiently.

There are lots of data structure available.

Here are the Topics:-

Array

Linked

Stack

Queue

Tree

Heap

Hashing

Graph

Sorting Techinques

Trie

These are the few topics that one should know to know about data strucure.

                                                         Overview

1. Linear Data Strucure :- In this Data is arranged Lineraly.

Examples :- Array, Linked List, Stack, Queue.

2. Non-Linear - In this one data elements is attached to few other elements

Example - Tree and Graph, etc.