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

Stack Implementation using Array

// Static Implementation of Stack

#include<stdio.h>

#include<conio.h>

#define N 5

int stack[5];

int top = -1;

void push(){

int x;

printf("Enter data: ");

scanf("%d",&x);

if(top==N-1)

printf("Overflow\n");

else{

top++;

stack[top]=x;

}

}

Binary Search Algorithm

#include<stdio.h>

#include<conio.h>

int BinarySearch(int [],int,int,int);

int a[100],i,n,key,flag,l,r,m;

void main(){

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements (in ascending order): ");

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

scanf("%d",&a[i]);

printf("Enter value to be searched: ");

scanf("%d",&key);

flag=BinarySearch(a,0,n-1,key);

if(flag==0)

printf("%d is not found.",key);

else

printf("%d is found at %d position",key,flag+1);

getch();

}

Linear Search Algorithm

#include<stdio.h>
#include<conio.h>
void LinearSearch(int [],int,int);
int a[100],i,n,key;
void main(){
printf("Enter array size: ");
scanf("%d",&n);
printf("Enter array elements: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Enter value to be searched: ");
scanf("%d",&key);
LinearSearch(a,n,key);
getch();
}

Counting Sort

#include<stdio.h>

#include<conio.h>

void counting_sort(int [],int,int);

int a[100],count[100],b[100],i,k,n;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

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

scanf("%d",&a[i]);

k=a[0];

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

if(k<a[i])

k=a[i];

}

counting_sort(a,n,k);

printf("After Sorting: ");

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

printf("%d ",a[i]);

getch();

}

Quick Sort

#include<stdio.h>

#include<conio.h>

void quick_sort(int [],int,int);

int partition(int [],int,int);

int a[100],i,j,n,temp,lb,ub,start,end,pivot,loc;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

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

scanf("%d",&a[i]);

quick_sort(a,0,n-1);

printf("After Sorting: ");

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

printf("%d ",a[i]);

getch();

}

Selection Sort

#include<stdio.h>

#include<conio.h>

void selection_sort(int [],int);

int a[100],i,j,n,temp,min;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

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

scanf("%d",&a[i]);

selection_sort(a,n);

printf("After Sorting: ");

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

printf("%d ",a[i]);

getch();

}


void selection_sort(int a[],int n){

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

min=i;

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

if(a[j]<a[min])

min=j;

}

// swap(a[i],a[min])

if(min!=i){

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

}

}

Insertion Sort

#include<stdio.h>

#include<conio.h>

void insertion_sort(int [],int);

int a[100],i,j,n,temp;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

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

scanf("%d",&a[i]);

insertion_sort(a,n);

printf("After Sorting: ");

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

printf("%d ",a[i]);

getch();

}


void insertion_sort(int a[],int n){

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

temp=a[i];

j=i-1;

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

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

j--;

}

a[j+1]=temp;

}

}

Bubble Sort

 #include<stdio.h>

#include<conio.h>

void bubble_sort(int [],int);

int a[100],i,j,n,temp;

void main(){

// int a[100],i,n;

printf("Enter array size: ");

scanf("%d",&n);

printf("Enter array elements: ");

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

scanf("%d",&a[i]);

bubble_sort(a,n);

printf("After Sorting: ");

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

printf("%d ",a[i]);

getch();

}


void bubble_sort(int a[],int n){

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

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

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

temp=a[j];

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

a[j+1]=temp;

}

}

}

}

Binary Tree Implementation and Traversal [Pre-Order, In-Order, Post-Order]

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

struct node{

int data;

struct node *left,*right;

};

struct node* create(){

int x;

struct node *newnode;

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

printf("Enter data (-1 for no node): ");

scanf("%d",&x);

if(x==-1)

return 0;

newnode->data=x;

printf("Enter left child of %d: ",x);

newnode->left=create();

printf("Enter right child of %d: ",x);

newnode->right=create();

return newnode;

}

Queue Implementation using Linked List

 #include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void enqueue(int);

void dequeue();

void display();

void peek();

struct node{

int data;

struct node *next;

};

struct node *newnode, *front=0,*rear=0, *temp;

void main(){

enqueue(3);

enqueue(5);

enqueue(7);

enqueue(9);

display();

peek();

dequeue();

display();

peek();

getch();

}

Stack Implementation using Linked List

// Dynamic Implementation of Stack

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void push(int);

void pop();

void display();

void peek();

struct node{

int data;

struct node *next;

};

struct node *newnode, *top=0,*temp;

void main(){

push(3);

push(5);

push(7);

push(9);

display();

peek();

pop();

display();

peek();

getch();

}

Queue as a List

 #include<stdio.h>

#include<conio.h>

#define N 5

void display();

int queue[N],front=-1,rear=-1,i;

void enqueue(int x){

if(rear==N-1)

printf("Queue is full.");

else if(front==-1 && rear==-1){

front=rear=0;

queue[rear]=x;

}

else{

rear++;

queue[rear]=x;

}

}

Create, Display, Insert, Delete, Reverse a Linked List

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>


void create();

void display();


void insert_atfirst();

void insert_atend();

void getlength();

void insert();


void delete_fromfirst();

void delete_fromend();

void delete_frompos();


void reverse();


struct node{

int data;

struct node *next;

};

struct node *head, *newnode, *temp, *prevnode, *nextnode, *currentnode;

int count;


void main(){

create();

display();

insert_atfirst();

display();

insert_atend();

display();

getlength();

insert();

display();

delete_fromfirst();

display();

delete_fromend();

display();

delete_frompos();

display();

reverse();

display();

getch();

}

Create, Display, Insert, Delete, Update in List [Array]

#include<stdio.h>

#include<conio.h>


int create();

int display(int [],int);

int insert(int [],int);

int delete_fromlist(int [],int);

int update(int [],int);


int a[100],n,i;


void main(){

create();

display(a,n);

insert(a,n);

delete_fromlist(a,n);

update(a,n);

getch();

}


int create(){

printf("Enter n: ");

scanf("%d",&n);

printf("Enter %d elements:\n",n);

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

scanf("%d",&a[i]);

}


int display(int a[],int n){

printf("Current array elements: ");

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

printf("%d\t",a[i]);

}