Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions data-structures/C/Algorithms/binary-search.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include <stdio.h>
//#include <conio.h>

void main() {
int query,i,halfIndex,fullIndex;
int arr[6] = {11,23,35,56,67,78};

//clrscr();
printf("\n Enter element to search:");
scanf("%d",&query);

halfIndex = sizeof(arr)/2;
fullIndex = sizeof(arr)-1;

if (query == arr[halfIndex]){
printf("\n Element at %d \n",halfIndex);
}
else if (query < arr[halfIndex]){
for (i=0;i<arr[halfIndex];i++){
if (query == arr[i]){
printf("\n Element at %d \n",i);
}
}
}
else if (query > arr[halfIndex]){
for (i=arr[halfIndex];i< fullIndex;i++){
if (query == arr[i]){
printf("\n Element at %d \n",i);
}
}
}
else {
printf("Element not in array");
}
//getch();
}
27 changes: 27 additions & 0 deletions data-structures/C/Algorithms/linear-search.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include <stdio.h>
//#include <conio.h>

void main() {
int query,i,finalIndex,found=0;
int arr[5] = {11,66,44,22,55};
//clrscr();

printf("Program for linear search\n");
printf("Enter element to search:");
scanf("%d",&query);

finalIndex = sizeof(arr) - 1;

for (i=0;i<=finalIndex;i++){ //checks for query at every iteration
if (arr[i]==query){
printf("Element at %d index\n",i);
found = 1;
break;
}
}

if (found == 0){
printf("Element not in list\n");
}
//getch();
}
Binary file added data-structures/C/LinkedList/link
Binary file not shown.
30 changes: 30 additions & 0 deletions data-structures/C/LinkedList/linked-list-insertion.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>

struct node {
int data;
struct node *next;
};

void main(){
int opt,value;
struct node *head = NULL, *last = NULL;
//clrscr();

printf("PROGRAM FOR LINKED LIST ELEMENT INSERTION\n");
printf("1.Add to front\n");
printf("2.Add to rear\n");
printf("3.Add to a specific location\n");
printf("Enter your option");
scanf("%d",&opt);

switch(opt){
case(1):
if (*head == NULL){

}
printf("\nEnter Value:");
scanf("%d",&value);
}
}
58 changes: 58 additions & 0 deletions data-structures/C/LinkedList/linked-list.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>

struct node {
int data;
struct node *next;
};

void main() {
struct node *head=NULL, *tail=NULL;
int opt,opt2,value;
//clrscr();

printf("\nPROGRAM FOR LINKED LIST\n");
printf("1.Show linked list\n");
printf("2.Insert new node\n");
printf("3.Delete last node\n");
printf("ENTER YOUR OPTION:");
scanf("%d",&opt);

switch(opt){
case(1):
break;

case(2):

printf("\nInsert At:");
printf("\n1.Beginning");
printf("\n2.End");
printf("\n3.Specific Location");
printf("\nEnter YOUR OPTION:");
scanf("%d",&opt2);

switch(opt2) {
case(1):
struct node* new_node = (struct node*)malloc(sizeof(struct node));
printf("\nENTER VALUE:");
scanf("%d",&value);
new_node->data = value;
new_node->next = (*head);
(*head) = new_node;
break;

case(2):
struct node* new_node = (struct node*)malloc(sizeof(struct node));
struct node* last = *head;
printf("\nENTER VALUE:");
scanf("%d",&value);
new_node->data = value;
new_node->next = NULL;
tail->next = new_node;
break;
}

}
//getch();
}
57 changes: 57 additions & 0 deletions data-structures/C/Matrix/sparse-martix.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include <stdio.h>
//#include <conio.h>

void main() {
int m,n,i,j,index=0;

struct nonzero {
int row;
int column;
int element;
} nonzero[100]; //list of nonzero element as structure

printf("\nPROGRAM FOR SPARSE MATRIX AND RETURING NON ZERO ELEMENTS WITH POSITIONS\n");
printf("Enter number of row in matrix:");
scanf("%d",&m);
printf("\nEnter number of columns in matrix:");
scanf("%d",&n);

int sparse[m][n]; //sparse matrix

//clrscr();
// pushing elements
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("Enter element at [%d][%d]:",i,j);
scanf("%d",&sparse[i][j]);
}
}

//displaying matrix
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%d\t",sparse[i][j]);
}
printf("\n");
}

//finding non zero elements
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if (sparse[i][j] != 0){
nonzero[index].row = i;
nonzero[index].column = j;
nonzero[index].element = sparse[i][j];
index++;
}
}
}

// displaying non zero elements alongwith their location
for (i=0;i<index;i++){
printf("Element %d at [%d][%d]\n",nonzero[i].element,
nonzero[i].row,nonzero[i].column);
}
//getch();

}
64 changes: 64 additions & 0 deletions data-structures/C/Queue/circular-queue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>

void main() {

int opt,i,item,front=0,rear=5;
int cirQueue[8] = {1,2,9,4,6,8};
int size = 8;

//clrscr();
while(1) {
printf("\nPROGRAM FOR CIRCULAR QUEUE IMPLEMENTATION\n");
printf("1. Show queue\n");
printf("2. Push to queue\n");
printf("3. Pop from queue\n");
printf("4. Exit\n");
printf("Enter your option:");
scanf("%d",&opt);

switch(opt){
case(1):

for(i=front;i<=rear;i++){
printf("%d,",cirQueue[i]);
}
break;

case (2):

if(front == (rear+1)%size ) {
printf("Queue Full\n");
break;
}
else if (front == -1){
front = 0;
}
printf("Insert item:");
scanf("%d",&item);
rear = (rear+1)%size;
cirQueue[rear] = item;
break;

case (3):

if(front==-1){
printf("Queue Empty\n");
}
else if(front==rear){
front = rear = -1;
}
else {
item = cirQueue[front];
front = (front+1)%size;
printf("\nElement %d popped out of queue",item);
}
break;

case (4):
exit(0);
}
}
//getch();
}
61 changes: 61 additions & 0 deletions data-structures/C/Queue/queue.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>

void main() {

int i, front=0, rear=5, opt,item;
int queue[10] = {1,2,3,4,5,6};
//clrscr():

while(1) {
printf("\nPROGRAM FOR QUEUE IMPLEMENTATION\n");
printf("1. Show Queue\n");
printf("2. Push to Queue\n");
printf("3. Pop from Queue\n");
printf("4. Exit\n");
printf("Enter your option:");
scanf("%d",&opt);

switch(opt){
case (1):

for(i=front;i<=rear;i++){
printf("%d,",queue[i]);
}
break;

case (2):

if(rear == sizeof(queue) - 1){
printf("Queue Full");
}
else if (front == -1 ){
front =0;
}
printf("\nEnter element to insert:");
scanf("%d",&item);
rear += 1;
queue[rear] = item;
break;

case (3):
if (front == -1){
printf("Queue Empty");
}
else if(front==rear){
front=rear=-1; //reinitialization if queue ended somewhere in middle
}
else{
item = queue[front];
front++;
printf("Element %d popped from queue",item);
}
break;

case (4):
exit(0);
}
}
//getch();
}
Loading