Você está na página 1de 12

Queue #include<stdio.h> #include<conio.h> #include<stdlib.

h> #define MAX 10 int queue[MAX]; int front=-1, rear=-1; void insert(); int deleted(); void display(); void main() { int n; clrscr(); while (1) { printf("\nEnter 1 to insert, 2 to delete, 3 to display, and 4 to exit"); scanf("%d", &n); switch(n) { case 1:insert(); break; case 2:printf("\nThe deleted item is %d", deleted()); break; case 3: display(); break; case 4: exit(0); default: printf("\nWrong input"); } } } void insert() { int item; if (rear>=MAX) { printf("\nQueue overflow"); getch(); } else

{ printf("\nEnter the element to be inserted"); scanf("%d", &item); rear=rear+1; queue[rear]=item; if (front==-1) front=front+1; } } int deleted() { int item; if(front==-1) { printf("\n queue is empty"); return NULL; } else if(rear==front) { item=queue[front]; front=rear=-1; } else { item=queue[front]; front=front+1; } return item; } void display() { int i; if(front==-1) printf("The queue is empty"); else { for(i=front; i<=rear; i++) printf("%5d", queue[i]); } getch(); }

Circular Queue #include<stdio.h> #include<conio.h> #include<stdlib.h> #define MAX 5 int queue[MAX]; int front=-1, rear=-1; void insert(); int deleted(); void display(); void main() { int n; clrscr(); while (1) { printf("\nEnter 1 to insert, 2 to delete, 3 to display, and 4 to exit"); scanf("%d", &n); switch(n) { case 1:insert(); break; case 2:printf("\nThe deleted item is %d", deleted()); break; case 3: display(); break; case 4: exit(0); default: printf("\nWrong input"); } } } void insert() { int num; if(front==(rear+1)%MAX) { printf("Queue is full, overflow occurs");

getch(); } else { printf("Enter the element to be inserted"); scanf("%d", &num); if(front==-1) { front=rear=0; queue[rear]=num; } else { rear=(rear+1)%MAX; queue[rear]=num; } } } int deleted() { int num; if(front==-1) { printf("\nThe queue is empty, underflow occurs."); getch(); } else { num=queue[front]; } if (front==rear) front=rear=-1; else front=(front+1)%MAX; return num; } void display() { int i; if(front==-1) { printf("\nThe queue is empty, underflow occurs.");

getch(); } else { printf("\nThe status of the queue:\n"); for(i=front; i<=rear; i++) printf("%5d", queue[i]); } if(front>rear) { for(i=front; i<MAX; i++) printf("%5d", queue[i]); for(i=0; i<=rear; i++) printf("%5d", queue[i]); } } Linked stack #include<stdio.h> #include<conio.h> #include<stdlib.h> struct stack { int num; struct stack *next; }*start=NULL; typedef struct stack st; void push(); void pop(); void display(); void main() { int n; clrscr(); while (1) { printf("\nEnter 1 to push, 2 to pop, 3 to display, and 4 to exit"); scanf("%d", &n); switch(n) { case 1:push();

break; case 2:pop(); break; case 3: display(); break; case 4: exit(0); default: printf("\nWrong input"); } } } void push() { st *node; node=(st*)malloc(sizeof(st)); printf("\nEnter the number to be inserted"); scanf("%d", &node->num); node->next=start; start=node; } void pop() { st *temp; temp=start; if(start==NULL) printf("\nThe stack is empty"); else start=start->next; printf("\The popped element is %d", temp->num); free(temp); } void display() { st *temp; temp=start; if(start==NULL) printf("\nThe stack is empty"); while(temp->next!=NULL) { printf("%5d", temp->num); temp=temp->next; } printf("%5d", temp->num);

} Linked Queue #include<stdio.h> #include<conio.h> #include<stdlib.h> typedef struct queue { int num; struct queue *next; }queue; queue *start=NULL; void insert(); void deletion(); void display(); void main() { int n; clrscr(); while (1) { printf("\nEnter 1 to insert, 2 to delete, 3 to display, and 4 to exit"); scanf("%d", &n); switch(n) { case 1:insert(); break; case 2:deletion(); break; case 3: display(); break; case 4: exit(0); default: printf("\nWrong input"); } } } void insert() { queue *p, *temp; temp=start; p=(queue*)malloc(sizeof(queue));

printf("\nEnter the element to be inserted"); scanf("%d", &p->num); p->next=NULL; if(start==NULL) start=p; else { while(temp->next!=NULL) { temp=temp->next; } temp->next=p; } } void deletion() { queue *temp; int val; if(start==NULL) { printf("\nThe queueu is empty"); getch(); } else { temp=start; val=temp->num; start=start->next; printf("\nThe deleted element is %d", val); free(temp); } } void display() { queue *temp; temp=start; if(start==NULL) { printf("\nThe queue is empty"); getch(); } else

{ printf("\The status of the queue:"); while(temp->next!=NULL) { printf("%5d", temp->num); temp=temp->next; } printf("%5d", temp->num); } }

Linear Search #include<stdio.h> #include<conio.h> void main() { int a[20], n, loc=0, i,num; clrscr(); printf("\nEnter the number of integers"); scanf("%d", &n); printf("Enter the %d integers", n); for(i=0; i<n; i++) { scanf("%d", &a[i]); } printf("\nEnter the element to be searched for"); scanf("%d", &num); for(i=0; i<n; i++) { if(a[i]==num) { loc=i; break; } loc++; } if(loc==n) printf("\nThe integer %d is not found in the array", num); else printf("\nThe integer %d is found at position %d", num, ++loc);

getch(); }

Binary Search #include<stdio.h> #include<conio.h> void main() { int a[20], n, i,j,num, beg, end, mid; clrscr(); printf("\nEnter the number of integers"); scanf("%d", &n); printf("Enter the %d integers", n); for(i=0; i<n; i++) { scanf("%d", &a[i]); } printf("\nEnter the element to be searched for"); scanf("%d", &num); beg=0, end=n-1, mid=(beg+end)/2; while(beg<=end && a[mid]!=num) { if(num<a[mid]) end=mid-1; else beg=mid+1; mid=(beg+end)/2; } if(a[mid]==num) printf("\nThe element %d is found at position %d", num, ++mid); else printf("\nThe element %d is not found in the array", num); getch(); } Bubble Sort #include<stdio.h> #include<conio.h>

void main() { int i,j,temp,n, a[20]; clrscr(); printf("\nEnter the no. of elements to be sorted"); scanf("%d", &n); printf("\nEnter the numbers to be sorted"); for(i=0; i<n; i++) { scanf("%d", &a[i]); } for(i=0; i<n; i++) { for(j=0; j<n-i-1; j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } printf("\nThe sorted list of numbers is:"); for(i=0; i<n; i++) { printf("%5d", &a[j]); } getch(); } Towers of Hanoi #include<stdio.h> #include<conio.h> void hanoi(int, char, char, char); void main() { int n; char a,b,c;a='A', b='B', c='C'; clrscr(); printf("\nEnter the number of disks");

scanf("%d", &n); hanoi(n, a, b, c); getch(); } void hanoi(int num, char a, char b, char c) { if(num==1) { printf("\nMove the disk from %cto %c",a,c); return; } hanoi(num-1, a, c, b); printf("\nMove the disk from %c o %c", a,c); hanoi(num-1, b, a,c); }

Você também pode gostar