Dsa File
Dsa File
PANIPAT
(CA3343)
DATE PAGE
S.No. LIST OF EXPERIMENT SIGN.
NO.
Sorting Algorithms-Non-Recursive
1.
Sorting Algorithms-Recursive
2.
Searching Algorithm
3.
PAGE No.
Experiment No-1
Objective: Sorting Algorithms-Non-Recursive
#include <iostream>
#include <vector>
int n = arr.size();
int main() {
bubbleSort(arr);
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-2
Objective: Sorting Algorithm-Recursive
#include <iostream>
#include <vector>
using namespace std;
PAGE No.
Experiment No-3
Objective: Searching Algorithm
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr = {2, 3, 4, 10, 40};
int x = 10;
int result = binarySearch(arr, 0, arr.size() - 1, x);
if (result != -1) cout << "Element found at index " << result;
else cout << "Element not found";
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-4
Objective: Implementation of Stack using Array
#include <iostream>
class Stack {
private:
int arr[1000];
int top;
public:
bool push(int x) {
return false;
arr[++top] = x;
return true;
int pop() {
if (top < 0) {
return 0;
}
return arr[top--];
};
int main() {
Stack s;
s.push(10);
s.push(20);
s.push(30);
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-5
Objective: Implementation of Queue using Array
#include <iostream>
class Queue {
private:
int arr[1000];
public:
bool enqueue(int x) {
return false;
arr[++rear] = x;
return true;
int dequeue() {
return 0;
}
return arr[front++];
};
int main() {
Queue q;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-6
Objective: Implementation of Circular Queue using Array
#include <iostream>
class CircularQueue {
private:
int arr[5];
int size;
public:
CircularQueue() {
size = 5;
bool enqueue(int x) {
return false;
front = rear = 0;
else {
rear++;
arr[rear] = x;
return true;
int dequeue() {
if (front == -1) {
return 0;
if (front == rear) {
front = -1;
rear = -1;
front = 0;
else {
front++;
return data;
};
int main() {
CircularQueue q;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-7
Objective: Implementation of Stack using Linked List
#include <iostream>
class StackNode {
public:
int data;
StackNode* next;
StackNode(int d) {
data = d;
next = nullptr;
};
class Stack {
private:
StackNode* top;
public:
newNode->next = top;
top = newNode;
}
int pop() {
if (top == nullptr) {
return 0;
top = top->next;
delete temp;
return popped;
};
int main() {
Stack s;
s.push(10);
s.push(20);
s.push(30);
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-8
Objective: Implementation of Queue using Linked List
#include <iostream>
class QueueNode {
public:
int data;
QueueNode* next;
QueueNode(int d) {
data = d;
next = nullptr;
};
class Queue {
private:
public:
Queue() {
return;
rear->next = newNode;
rear = newNode;
int dequeue() {
if (front == nullptr) {
return 0;
front = front->next;
if (front == nullptr) {
rear = nullptr;
delete temp;
return data;
};
int main() {
Queue q;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-9
Objective: Implementation of Circular Queue using Linked List
#include <iostream>
class Node {
public:
int data;
Node* next;
Node(int d) {
data = d;
next = nullptr;
};
class CircularQueue {
private:
public:
CircularQueue() {
if (front == nullptr) {
rear->next = front;
} else {
rear->next = newNode;
rear = newNode;
rear->next = front;
int dequeue() {
if (front == nullptr) {
return -1;
int value;
if (front == rear) {
value = front->data;
delete front;
} else {
value = temp->data;
front = front->next;
rear->next = front;
delete temp;
return value;
}
void display() {
if (front == nullptr) {
return;
do {
temp = temp->next;
};
int main() {
CircularQueue q;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
q.display();
cout << q.dequeue() << " dequeued from queue" << endl;
q.display();
return 0;
}
GEETA UNIVERSITY, PANIPAT
Experiment Tittle: EXPER. No.
PAGE No.
Experiment No-10
Objective: Implementation of Tree Structures, Binary Tree, Tree Traversal, Binary Search Tree,
Insertion and Deletion in BST
#include <iostream>
class Node {
public:
int data;
Node* left;
Node* right;
Node(int d) {
data = d;
};
class BST {
public:
Node* root;
if (node == nullptr) {
return node;
current = current->left;
return current;
else {
if (root->left == nullptr) {
delete root;
return temp;
return temp;
root->data = temp->data;
return root;
if (root != nullptr) {
inorder(root->left);
inorder(root->right);
if (root != nullptr) {
preorder(root->left);
preorder(root->right);
if (root != nullptr) {
postorder(root->left);
postorder(root->right);
};
int main() {
BST tree;
tree.insert(tree.root, 30);
tree.insert(tree.root, 20);
tree.insert(tree.root, 40);
tree.insert(tree.root, 70);
tree.insert(tree.root, 60);
tree.insert(tree.root, 80);
tree.inorder(tree.root);
tree.preorder(tree.root);
tree.postorder(tree.root);
tree.inorder(tree.root);
return 0;