Lab Programs
Lab Programs
Array Operations
Solution:
#include <iostream>
int main() {
int n = 5;
// Insert element
arr[pos] = value;
n++;
// Delete element
pos = 3;
n--;
display(arr, n);
return 0;
2. Stack Implementation
Solution:
#include <iostream>
class Stack {
int top;
int arr[MAX];
public:
int pop();
int peek();
bool isEmpty();
};
bool Stack::push(int x) {
return false;
arr[++top] = x;
return true;
int Stack::pop() {
if (top < 0) {
return 0;
return arr[top--];
int Stack::peek() {
if (top < 0) {
return 0;
return arr[top];
int main() {
Stack s;
s.push(10);
s.push(20);
cout << "Top element: " << s.peek() << endl;
s.pop();
cout << "Top element after pop: " << s.peek() << endl;
return 0;
3. Queue Implementation
Solution:
#include <iostream>
#define SIZE 5
class Queue {
int arr[SIZE];
public:
Queue() {
front = -1;
rear = -1;
int dequeue();
bool isEmpty();
bool isFull();
};
void Queue::enqueue(int x) {
if (isFull()) {
return;
arr[++rear] = x;
int Queue::dequeue() {
if (isEmpty()) {
return 0;
if (front == rear) {
front = -1;
rear = -1;
} else {
front++;
return data;
Queue q;
q.enqueue(10);
q.enqueue(20);
return 0;
Solution:
#include <iostream>
struct Node {
int data;
Node* next;
};
newNode->data = data;
newNode->next = head;
head = newNode;
head = temp->next;
delete temp;
return;
prev = temp;
temp = temp->next;
prev->next = temp->next;
delete temp;
head = head->next;
int main() {
insert(head, 20);
insert(head, 30);
display(head);
deleteNode(head, 20);
display(head);
return 0;
5. Binary Search
Solution:
#include <iostream>
if (arr[mid] == key)
return mid;
else if (arr[mid] < key)
low = mid + 1;
else
high = mid - 1;
return -1;
int main() {
if (result != -1)
cout << "Element found at index " << result << endl;
else
return 0;