0% found this document useful (0 votes)
17 views2 pages

Micro 1

Uploaded by

da Cyber cafe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views2 pages

Micro 1

Uploaded by

da Cyber cafe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

postfix[j] = temp;

<4>#include<stdio.h>#include<stdlib.h>void evaluate();
j++;}
void push(char);
char pop(); push(symb);
int prec(char);char infix[30], postfix[30], stack[30]; int break;
top = -1;void main() { default:
printf("\nEnter the valid infix expression:"); postfix[j] = symb;
scanf("%s", infix); j++;}}
evaluate(); while (top > 0) {
printf("\nThe entered infix expression is :\n %s \n", infix); printf("\nThe temp = pop();
corresponding postfix expression is :\n %s \n", postfix); postfix[j] = temp;
}void evaluate() { j++;}
int i = 0, j = 0; postfix[j] = '\0';
char symb, temp;push('#');for (i = 0; infix[i] != '\0'; i++) { symb = }void push(char item) {
infix[i]; top = top + 1; stack[top]
switch (symb) { = item;
case '(': }char pop() {
push(symb); char item;
break;case ')': item = stack[top];
temp = pop(); while top = top - 1;
(temp != '(') { return item;
postfix[j] = temp; }int prec(char symb) {
j++; int p;
temp = pop();} switch (symb) {
break; case '#':p = -1;
case '+': break;case '(':
case '-': case ')':p = 0;
case '*': break;case '+':
case '/': case '-':p = 1;
case '%': break;case '*':
case '^': case '/':
case '$': case '%':p =2;
while (prec(stack[top]) >= prec(symb)) {
break;case '^':
temp = pop();
case '$':p = 3;
break;}
return p;}

<6>#include <stdio.h> if (front == (rear + 1) % MAX) {


#include<stdlib.h> printf("\n\n~~Circular Queue Overflow~~");
#include<stdio_ext.h> } else {
#define MAX 3char cq[MAX]; if (front == -1)
int front = -1, rear = -1;void insert(char); front = rear = 0;
void delete(); else
void display(); rear = (rear + 1) % MAX;
void main() { cq[rear] = item;}
int ch; }void delete() {
char item; char item;
while (1) { if (front == -1) {
printf("\n\n~~Main Menu~~"); printf("\n\n~~Circular Queue Underflow~~");
printf("\n==> 1. Insertion and Overflow Demo"); } else {
printf("\n==> 2. Deletion and Underflow Demo"); item = cq[front];
printf("\n==> 3. Display"); printf("\n\nDeleted element from the queue is: %c ", item);if (front == rear)
printf("\n==> 4. Exit"); //only one element
printf("\nEnter Your Choice: "); front = rear = -1;
scanf("%d", & ch); else
fpurge(stdin); front = (front + 1) % MAX;}
switch (ch) { }void display() {
case 1: int i;
printf("\n\nEnter the element to be inserted: "); if (front == -1) {
scanf("%c", & item); insert(item); printf("\n\nCircular Queue Empty");
break; } else {
case 2: printf("\nCircular Queue contents are:\n");
delete(); printf("Front[%d]-> ", front);
break; for (i = front; i != rear; i = (i + 1) % MAX) {
case 3: printf(" %c", cq[i]);
display(); }
break; printf(" %c", cq[i]);
case 4: printf(" <-[%d]Rear", rear);
exit(0); }
default: }
printf("\n\nPlease enter a valid choice");}}
}void insert(char item)
printf("\nEnter your choice: ");
<11>#include<stdio.h>#include<stdlib.h>int a[50][50], n, scanf("%d", & ch);
visited[50]; int q[20], front = -1, rear = -1; switch (ch) {
int s[20], top = -1, count = 0;void bfs(int v) { case 1:
int i, cur; printf("\nNodes reachable from starting vertex %d are: ", start);
visited[v] = 1; bfs(start);
q[++rear] = v; for (i = 1; i <= n; i++) {
while (front != rear) { if (visited[i] == 0)
cur = q[++front]; printf("\nThe vertex that is not reachable is %d", i);
for (i = 1; i <= n; i++) { }
if ((a[cur][i] == 1) && (visited[i] == 0)) { break;case 2:
q[++rear] = i; printf("\nNodes reachable from starting vertex %d are:\n", start);
visited[i] = 1; dfs(start);
printf("%d ", i);}}} break;
}void dfs(int v) { case 3:
int i; exit(0);
visited[v] = 1; default:
s[++top] = v; printf("\nPlease enter valid choice:");}}
for (i = 1; i <= n; i++) {
if (a[v][i] == 1 && visited[i] == 0) {
<5b>#include <stdio.h>
printf("%d ", i);
void tower(int n, int source, int temp, int destination){
dfs(i);}}
if (n == 0)
}int main() {int ch, start, i, j;
return;
printf("\nEnter the number of vertices in graph:");
tower(n - 1, source, destination, temp);
scanf("%d", & n);
printf("\nMove disc %d from %c to %c", n, source, destination); tower(n -
printf("\nEnter the adjacency matrix:\n");
1, temp, source, destination);}
for (i = 1; i <= n; i++) {
void main() {
for (j = 1; j <= n; j++)
int n;
scanf("%d", & a[i][j]);
printf("\nEnter the number of discs: \n");
}for (i = 1; i <= n; i++)
scanf("%d", & n);
visited[i] = 0;
tower(n, 'A', 'B', 'C');
printf("\nEnter the starting vertex: ");
printf("\n\nTotal Number of moves are: %d", (int) pow(2, n) - 1);}
scanf("%d", & start);printf("\n==>1. BFS: Print all nodes reachable from a
given starting node");
printf("\n==>2. DFS: Print all nodes reachable from a given starting node");
printf("\n==>3:Exit");

<12>#include<stdio.h>#include<stdlib.h>int key[20], n, m; int * ht, index; <10>#include <stdio.h>#include <stdlib.h>struct node {


int count = 0;void insert(int key) { int data;
index = key % m;
struct node *left, *right;};
while (ht[index] != -1) {
struct node* insert(struct node* root, int data) {
index = (index + 1) % m;
if (!root) {
}
root = (struct node*)malloc(sizeof(struct node));
ht[index] = key;
root->data = data;
count++;
}void display() { root->left = root->right = NULL;
int i; } else if (data < root->data)
if (count == 0) { root->left = insert(root->left, data);else
printf("\nHash Table is empty"); root->right = insert(root->right, data);
return; return root;}
}printf("\nHash Table contents are:\n "); int search(struct node* root, int key) {
for (i = 0; i < m; i++) return root ? (root->data == key || search(root->left, key) || search(root->right, key)) : 0;}
printf("\n T[%d] --> %d ", i, ht[i]); void traverse(struct node* root) {if (root) {
}void main() { printf("%d ", root->data);
int i; traverse(root->left);
printf("\nEnter the number of employee records (N) :"); traverse(root->right);}}int main() {
scanf("%d", & n);printf("\nEnter the two digit memory locations (m) for hash struct node *root = NULL;
table:");
int choice, value, n;while (1) {
scanf("%d", & m);ht = (int * ) malloc(m * sizeof(int));
printf("1. Create BST\n2. Search\n3. Traversals\n4. Exit\nEnter choice: ");
for (i = 0; i < m; i++)
scanf("%d", &choice);
ht[i] = -1;
if (choice == 1) {
printf("\nEnter the four digit key values (K) for N Employee Records:\n "); printf("Enter number of elements: ");
for (i = 0; i < n; i++) scanf("%d", &n);while (n--) {
scanf("%d", & key[i]);for (i = 0; i < n; i++) {
printf("Enter value: ");
if (count == m) {
scanf("%d", &value);
printf("\n~~~Hash table is full. Cannot insert the record %d key~~~", i + 1);
root = insert(root, value);}
break;
} else if (choice == 2) {
}
printf("Enter value to search: ");
insert(key[i]);
}//Displaying Keys inserted into hash table scanf("%d", &value);

display(); printf(search(root, value) ? "Found\n" : "Not Found\n");


} } else if (choice == 3) {
traverse(root);printf("\n");
} else if (choice == 4) break;} return 0;}

You might also like