Ravindra Data
Ravindra Data
-F/TL/021
REV.00Date 20.03.2020
RECORD NOTEBOOK
2024-2025(ODD SEMESTER)
DEPARTMENT
Of
COMPUTER SCIENCE AND ENGINEERING
NAME B.Ravindra
REGISTER NO 231211101200
COURSE B.TECH-CSE(AI)
YEAR/SEM/SEC II/III/BA
FORM NO.-F/TL/021
REV.00Date 20.03.2020
BONAFIDE CERTIFICATE
Register No : 231211101200
EXP. STAFF
DATE TITLE PAGE NO.
NO SIGNATURE
IMPLEMENTATION OFSTACK
2a 18-25
USING ARRAY
IMPLEMENTATION OF QUEUE
3a 34-41
USING ARRAY
EVALUATION OFPOSTFIX
4b 58-66
EXPRESSION
IMPLEMENTATION OF BREADTH
8a 91-96
FIST SEARCH
IMPLEMENTATION OF DEPTH
8b 97-102
FIRST SEARCH
IMPLEMENTATION OF
9b 108-112
BINARY SEARCH
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
class List {
private:
int* arr;
int capacity;
int size;
public:
arr[size++] = element;
if (index < 0 || index > size || size == capacity) { cout << "Invalid index!" << endl;
return; }
if (index < 0 || index >= size) { cout << "Invalid index!" << endl; return; }
for (int i = index; i < size - 1; ++i) arr[i] = arr[i + 1];
size--;
if (index < 0 || index >= size) { cout << "Invalid index!" << endl; return -1; }
return arr[index];
void display() {
for (int i = 0; i < size; i++) cout << arr[i] << " ";
};
int main() {
List list(capacity);
do {
switch (choice) {
case 1:
list.insert(element);
break;
case 2:
list.insertAt(index, element);
break;
case 3:
list.removeAt(index);
break;
case 4:
cout << "Element at index " << index << " is: " << list.get(index) << endl;
break;
case 5:
list.display();
break;
case 6:
cout << "Size of the list: " << list.getSize() << endl;
break;
case 7:
break;
default:
return 0;
8
OUTPUT:
RESULT:
9
EXPNO: 1b DATE:
IMPLEMENT LIST ADT USING LINKED LIST
AIM:
ALGORITHM:
10
.
11
FLOWCHART:
12
PROGRAM CODE:
class Node {
public:
int data;
Node* next;
};
class List {
Node* head;
public:
void display();
};
if (pos == 0) {
newNode->next = head;
head = newNode;
13
return;
newNode->next = temp->next;
temp->next = newNode;
temp->next = del->next;
delete del;
int pos = 0;
while (temp) {
temp = temp->next;
14
pos++;
return -1;
temp->data = value;
void List::display() {
while (temp) {
temp = temp->next;
int main() {
<< endl;
List list;
do {
switch (choice) {
case 1:
list.insert(value, pos);
break;
case 2:
list.remove(pos);
break;
case 3:
break;
case 4:
list.update(pos, value);
break;
case 5:
list.display();
break;
case 6:
break;
default:
return 0;
}
OUTPUT:
RESULT:
EXPNO: 2a DATE:
IMPLEMENTATION OF STACK USING ARRAY
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#define SIZE 5
class Stack {
private:
public:
Stack() {
top = -1;
return;
a[++top] = num;
int pop() {
if (top < 0) {
return 0;
}
return a[top--];
void display() {
if (top < 0) {
return;
};
void main() {
clrscr();
textbackground(15);
textcolor(0 );
clrscr();
<< endl;
Stack s;
do {
cout << "\nEnter the Choice: 1.Insert 2.Delete 3.Display 4.Exit: ";
cin >> ch;
switch (ch) {
case 1:
s.push(no);
break;
case 2:
val = s.pop();
if (val != 0) {
cout << "The Deleted Value is: " << val << "\n";
break;
case 3:
s.display();
break;
case 4:
exit(0);
break;
default:
}
OUTPUT:
RESULT:
EXPNO: 2b DATE:
IMPLEMENTATION OF STACK USING LINKED LIST
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class Stack {
private:
struct Node {
int data;
Node *link;
} *top;
public:
Stack() {
top = NULL;
t->data = num;
t->link =top;
top = t;
void pop() {
if (top == NULL) {
return;
}
cout << "The Deleted Value is: " << top->data << "\n";
top = top->link;
delete temp;
void display() {
if (top == NULL) {
return;
};
void main() {
clrscr();
textbackground(15);
textcolor(0);
clrscr();
<< endl;
Stack s;
do {
cout << "\nEnter the Choice: 1.Insert 2.Delete 3.Display 4.Exit: ";
switch (ch) {
case 1:
s.push(no);
break;
case 2:
s.pop();
break;
case 3:
s.display();
break;
case 4:
exit(0);
break;
default:
}
} while (ch != 4);
getch();
}
OUTPUT:
RESULT:
EXPNO: 3a DATE:
IMPLEMENTATION OF QUEUE USING ARRAY
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class Stack {
private:
struct Node {
int data;
Node *link;
}*top;
public:
Stack() {
top = NULL;
t->data = num;
t->link = top;
top = t;
void pop() {
if (top == NULL) {
return;
}
cout << "The Deleted Value is: " << top->data << "\n";
top = top->link;
delete temp;
void display() {
if (top == NULL) {
return;
};
void main() {
clrscr();
textbackground(15);
textcolor(0);
clrscr();
<< endl;
Stack s;
do {
cout << "\nEnter the Choice: 1.Insert 2.Delete 3.Display 4.Exit: ";
switch (ch) {
case 1:
s.push(no);
break;
case 2:
s.pop();
break;
case 3:
s.display();
break;
case 4:
exit(0);
break;
default:
}
} while (ch != 4);
getch();
}
OUTPUT:
RESULT:
EXPNO: 3b DATE:
IMPLEMENTATION OF QUEUE USING LINKED LIST
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class Queue {
private:
struct Node {
int data;
Node* link;
} *front, *rear;
public:
Queue() {
t->data = num;
t->link = NULL;
if (front == NULL) {
front = rear = t;
} else {
rear->link = t;
rear = t;
}
}
int deq() {
if (front == NULL) {
return -1;
} else {
front = front->link;
if (front == NULL) {
rear = NULL;
delete temp;
return deletedValue;
void dis() {
if (front == NULL) {
return;
}
Node* t = front;
while (t != NULL) {
t = t->link;
};
void main() {
clrscr();
clrscr();
<< endl;
Queue q;
do {
textcolor(11); // Cyan for prompts
cout << "\nEnter the Choice: 1.Insert 2.Delete 3.Display 4.Exit: ";
switch (ch) {
case 1:
q.enq(no);
break;
case 2: {
if (deletedValue != -1) {
break;
case 3:
q.dis();
break;
case 4:
textcolor(12); // Red for exit message
exit(0);
default:
getch();
}
OUTPUT:
RESULT:
EXPNO: 4a DATE:
INFIX TO POSTFIX CONVERSATION
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
#include <malloc.h>
void postfix();
void push(int);
char pop();
void main() {
clrscr();
clrscr();
<< endl;
postfix();
getch();
}
void postfix() {
int i, j = 0;
switch (inf[i]) {
case '+':
case '-':
post[j++] = pop();
break;
case '*':
case '/':
post[j++] = pop();
break;
case '^':
post[j++] = pop();
push(5);
break;
case '(':
push(0);
break;
case ')':
post[j++] = pop();
top--;
break;
default:
post[j++] = inf[i];
post[j++] = pop();
post[j] = '\0';
cout << "Postfix Expression is: " << post << endl;
}
void push(int ele) {
st[++top] = ele;
char pop() {
int el = st[top--];
switch (el) {
}
OUTPUT:
RESULT:
EXPNO: 4b DATE:
EVALUATION OF POSTFIX EXPRESSION
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <ctype.h>
#include <stdio.h>
#include <conio.h>
int stack[MAXSTACK];
return;
else
top = top + 1;
stack[top] = item;
int pop()
{
int item;
if (top < 0)
else
item = stack[top];
top = top - 1;
return item;
return (item);
int i;
char ch;
int val;
int A, B;
ch = postfix[i];
if (isdigit(ch))
{
push(ch - '0');
A = pop();
B = pop();
switch (ch)
case '*':
val = B * A;
break;
case '/':
val = B / A;
break;
case '+':
val = B + A;
break;
case '-':
val = B - A;
break;
push(val);
}
textcolor(13); // Magenta for output
cout << "Result of expression evaluation: " << pop() << endl;
void main()
clrscr();
<< endl;
cout << "Enter postfix expression, press ')' for end expression: ";
int i;
char postfix[POSTFIXSIZE];
if (postfix[i] == ')')
break;
}
}
EvalPostfix(postfix);
}
OUTPUT:
RESULT:
EXPNO: 05 DATE:
BINARY TREE TRAVERSAL- IN ORDER, PREORDER ,
POSTORDER USING RECURSION
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
struct Node {
int data;
Node* left;
Node* right;
Node(int data) {
this->data = data;
};
inOrder(node->left);
inOrder(node->right);
preOrder(node->left);
preOrder(node->right);
}
void postOrder(Node* node) {
postOrder(node->left);
postOrder(node->right);
int main() {
clrscr();
textbackground(15);
textcolor(0);
clrscr();
<< endl;
textcolor(11);
textcolor(15);
preOrder(root);
textcolor(11);
textcolor(15);
inOrder(root);
textcolor(11);
textcolor(15);
postOrder(root);
getch();
return 0;
}
OUTPUT:
RESULT:
EXPNO: 06 DATE:
IMPLEMENT THE OPERATION OF BINARY SEARCH TREE
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
struct Node {
int data;
Node(int item) {
data = item;
};
if (!root) return;
inorder(root->left);
inorder(root->right);
return cur;
}
Node* insertion(Node* root, int item) {
else
return root;
else {
if (!root->left) {
delete root;
return temp;
} else if (!root->right) {
delete root;
return temp;
}
root->data = succ->data;
return root;
void main() {
clrscr();
clrscr();
<< endl;
// Insertion of nodes
inorder(root);
inorder(root);
inorder(root);
getch();
}
OUTPUT:
RESULT:
EXPNO: 07 DATE:
IMPLEMENTATION OF BINARY HEAPS
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include <iostream.h>
#include <conio.h>
struct Node {
int data;
Node(int item) {
data = item;
};
*x = *y;
*y = temp;
class MinHeap {
MinHeap(int capacity);
int extractMin();
};
MinHeap::MinHeap(int cap) {
heap_size = 0;
capacity = cap;
void MinHeap::insertKey(int k) {
if (heap_size == capacity) {
return;
}
heap_size++;
int i = heap_size - 1;
harr[i] = k;
swap(&harr[i], &harr[parent(i)]);
i = parent(i);
harr[i] = new_val;
swap(&harr[i], &harr[parent(i)]);
i = parent(i);
int MinHeap::extractMin() {
if (heap_size <= 0)
return INT_MAX;
if (heap_size == 1) {
heap_size--;
return harr[0];
}
int root = harr[0];
heap_size--;
MinHeapify(0);
return root;
void MinHeap::deleteKey(int i) {
decreaseKey(i, INT_MIN);
extractMin();
void MinHeap::MinHeapify(int i) {
int l = left(i);
int r = right(i);
int smallest = i;
smallest = l;
smallest = r;
if (smallest != i) {
swap(&harr[i], &harr[smallest]);
MinHeapify(smallest);
}
}
// Main function
void main() {
textbackground(WHITE);
textcolor(BLACK);
<< endl;
MinHeap h(11);
h.insertKey(3);
h.insertKey(2);
h.deleteKey(1);
h.insertKey(15);
h.insertKey(5);
h.insertKey(4);
h.insertKey(45);
}
OUTPUT:
RESULT:
EXPNO: 8a DATE:
IMPLEMENTATION OF BREADTH FIST SEARCH
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int main()
int m;
textbackground(WHITE);
textcolor(BLACK);
cin >> n;
cin >> m;
cost[i][j] = 0;
cost[j][i] = 1;
textcolor(BLACK);
B. AMRUTHA VARSHINI
231211101213\n";
cin >> v;
textcolor(GREEN);
visited[v] = 1;
while (k < n) {
visit[j] = 1;
qu[rare++] = j;
}
}
v = qu[front++];
k++;
visit[v] = 0;
visited[v] = 1;
return 0;
}
OUTPUT:
RESULT:
EXPNO: 8b DATE:
IMPLEMENTATION OF DEPTH FIRST SEARCH
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int main()
int m;
textbackground(WHITE);
textcolor(BLACK);
cin >> n;
cin >> m;
cost[i][j] = 0;
cost[j][i] = 1;
textcolor(BLACK);
cout<<"\nName:B.AMRUTH
A VARSHINI\;
cin >> v;
textcolor(GREEN);
visited[v] = 1;
while (k < n) {
visit[j] = 1;
qu[rare++] = j;
}
}
v = qu[front++];
k++;
visit[v] = 0;
visited[v] = 1;
return 0;
}
OUTPUT:
RESULT:
EXPNO: 9a DATE:
MPLEMENTATION OF LINEAR SEARCH
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
void main() {
textbackground(WHITE);
textcolor(BLACK);
cout <<
"\nName:B.AMRUTHA
231211101213\n";
cin >> n;
s = 1;
break;
if(s == 0) {
}
OUTPUT:
RESULT:
EXPNO: 9b DATE:
IMPLEMENTATION OF BINARY SEARCH
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
void main() {
textbackground(WHITE);
textcolor(BLACK);
cout<<"\nName:B.AMR
UTHA VARSHINI\n;
231211101213\n";
cin >> n;
beg = 1;
end = n;
mid = (beg + end) / 2; // Corrected Mid Calculation
// Binary Search Logic
beg = mid + 1; // Corrected from 'beg = mid + l' to 'beg = mid + 1'
else
end = mid - 1;
if(a[mid] == item) {
} else {
}
OUTPUT:
RESULT:
EXPNO: 10a DATE:
BUBBLE SORT
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
int main()
textbackground(WHITE);
textcolor(BLACK);
int i, j, k, temp;
int a[10] = {10, 9, 7, 101, 23, 44, 12, 78, 34, 23}
cout<<"\nName:B.AMR
UTHA VARSHINI\n;
231211101213\n";
temp = a[k];
j = k - 1;
{
a[j + 1] = a[j];
j = j - 1;
}
a[j + 1] = temp;
}
OUTPUT:
RESULT:
EXPNO: 10b DATE:
SHELL SORT
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
int i, j, k, tmp;
break;
else {
tmp = arr[k];
arr[k + i] = tmp;
int main() {
textbackground(WHITE);
textcolor(BLACK);
int k, num;
cout <<
"Name:B.AMRUTHA
"ID:
231211101213\n";
cout << "\nEnter " << num << " numbers: ";
shellsort(arr, num);
return 0;
}
OUTPUT:
RESULT:
EXPNO: 10c DATE:
INSERTION SORT
AIM:
ALGORITHM:
FLOW CHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
(i = 1; i < n; i++) {
j = i - 1;
// Shift elements of the sorted portion to find the correct position for t
a[j + 1] = a[j];
j--;
a[j + 1] = t;
void main() {
textbackground(WHITE);
textcolor(BLACK);
int a[100], n;
cout <<
"Name:B.AMRUTHA
"ID:
231211101213\n";
cin >> n;
isort(a, n);
}
cout << endl;
getch(); // Wait for user input before closing
• .
OUTPUT:
RESULT:
EXPNO: 10d DATE:
IMPLEMENTATION OF HEAP SORT
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
elt = x[i];
s = i;
f = (s - 1) / 2;
x[s] = x[f];
s = f;
f = (s - 1) / 2;
x[s] = elt;
ivalue = x[i];
x[i] = x[0];
f = 0;
s = 1;
s = 2;
x[f] =x[s];
f = s;
s = 2 * f + 1;
s = s + 1;
x[f] = ivalue;
void main()
// Set the background color to white and the text color to black
textbackground(WHITE);
textcolor(BLACK);
int x[10], n;
cout <<
"Name:B.AMRUTHA
"ID:
231211101213\n";
cin >> n;
// Input elements
heapsort(x, n);
getch();
}
OUTPUT:
Result:
EXPNO: 11 DATE:
COLLUSION AND DOUBLE HASHING
AIM:
ALGORITHM:
FLOWCHART:
PROGRAM CODE:
#include<iostream.h>
#include<conio.h
int main() {
hash[i] = 0;
textbackground(WHITE);
textcolor(BLACK);
cout<<"Name:B.AMRUT
HA VARSHINI/n;
// Menu-based loop
while (1) {
cout << "\n1. Insert 2. Delete 3. Display 4. Exit\nEnter your choice: ";
switch (ch) {
case 1:
cout << "\nEnter element: ";
cin >> n;
pos = n % 20;
if (hash[pos] == 0) {
hash[pos] = n;
} else {
j++;
j++;
if (j == 20) {
} else {
hash[pos] = n;
j = 0;
break;
case 2:
cin >> n;
pos = n % 20;
// Linear Probing for deletion
if (hash[pos] == n) {
hash[pos] = 0;
} else {
j++;
j++;
if (j == 20) {
} else {
hash[pos] = 0;
j = 0;
break;
case 3:
}
cout << endl;
break;
case 4:
default:
break;
return 0;
}
OUTPUT:
RESULT: