0% found this document useful (0 votes)
4 views12 pages

Complete DS Lab Java Programs

The document contains Java programs for various data structures and algorithms, including attendance records, sales records, railway reservations, music playlists, browser history, stacks, queues, binary search trees, AVL trees, depth-first search, breadth-first search, hashing techniques, and sorting algorithms. Each program demonstrates the implementation of a specific data structure or algorithm, providing basic operations such as insertion, deletion, and display. The programs utilize different data structures like arrays, linked lists, stacks, and queues to manage and manipulate data effectively.
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)
4 views12 pages

Complete DS Lab Java Programs

The document contains Java programs for various data structures and algorithms, including attendance records, sales records, railway reservations, music playlists, browser history, stacks, queues, binary search trees, AVL trees, depth-first search, breadth-first search, hashing techniques, and sorting algorithms. Each program demonstrates the implementation of a specific data structure or algorithm, providing basic operations such as insertion, deletion, and display. The programs utilize different data structures like arrays, linked lists, stacks, and queues to manage and manipulate data effectively.
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

COMPLETE DATA STRUCTURES LAB JAVA PROGRAMS (1 -

16)

1. Student Attendance Record using Array


import [Link];

public class AttendanceArray {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

int[] attendance = new int[10];


int n = 0, choice, pos, value;

do {

[Link]("\[Link] [Link] [Link] [Link]");


choice = [Link]();

switch(choice) {

case 1:
[Link]("Enter attendance value: ");
value = [Link]();

attendance[n] = value;
n++;
break;

case 2:
[Link]("Enter position to delete: ");
pos = [Link]();

for(int i = pos; i < n - 1; i++) {


attendance[i] = attendance[i + 1];
}

n--;
break;

case 3:
[Link]("Attendance Records:");

for(int i = 0; i < n; i++) {


[Link](attendance[i] + " ");
}

[Link]();
break;
}

} while(choice != 4);

[Link]();
}
}

2. Supermarket Sales using Array


import [Link];

public class SalesArray {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

int[] sales = new int[20];


int n = 0, choice, pos, value;

do {

[Link]("\[Link] Sale [Link] Sale [Link] [Link]");


choice = [Link]();
switch(choice) {
case 1:
[Link]("Enter sales amount: ");
value = [Link]();

sales[n++] = value;
break;

case 2:
[Link]("Enter position to remove: ");
pos = [Link]();

for(int i = pos; i < n - 1; i++) {


sales[i] = sales[i + 1];
}

n--;
break;

case 3:
[Link]("Sales Records:");

for(int i = 0; i < n; i++) {


[Link](sales[i] + " ");
}

[Link]();
break;
}

} while(choice != 4);

[Link]();
}
}

3. Railway Reservation using Singly Linked List


class Node {
int data;
Node next;

Node(int data) {
[Link] = data;
next = null;
}
}

public class RailwayLinkedList {

Node head;

void insert(int data) {

Node newNode = new Node(data);

if(head == null) {
head = newNode;
} else {

Node temp = head;

while([Link] != null) {
temp = [Link];
}

[Link] = newNode;
}
}

void delete(int key) {

Node temp = head;


Node prev = null;

if(temp != null && [Link] == key) {


head = [Link];
return;
}

while(temp != null && [Link] != key) {


prev = temp;
temp = [Link];
}
if(temp != null) {
[Link] = [Link];
}
}

void display() {

Node temp = head;

while(temp != null) {
[Link]([Link] + " ");
temp = [Link];
}

[Link]();
}

public static void main(String[] args) {

RailwayLinkedList list = new RailwayLinkedList();

[Link](101);
[Link](102);
[Link](103);

[Link]();

[Link](102);

[Link]();
}
}

4. Music Playlist using Doubly Linked List


class DNode {

int data;
DNode prev, next;

DNode(int data) {
[Link] = data;
}
}

public class DoublyPlaylist {

DNode head;

void insert(int data) {

DNode newNode = new DNode(data);

if(head == null) {
head = newNode;
} else {

DNode temp = head;

while([Link] != null) {
temp = [Link];
}

[Link] = newNode;
[Link] = temp;
}
}

void delete(int key) {

DNode temp = head;

while(temp != null && [Link] != key) {


temp = [Link];
}

if(temp == null)
return;

if([Link] != null)
[Link] = [Link];
else
head = [Link];

if([Link] != null)
[Link] = [Link];
}

void forwardDisplay() {

DNode temp = head;

while(temp != null) {
[Link]([Link] + " ");

if([Link] == null)
break;

temp = [Link];
}

[Link]();
}

void backwardDisplay() {

DNode temp = head;

while([Link] != null) {
temp = [Link];
}

while(temp != null) {
[Link]([Link] + " ");
temp = [Link];
}

[Link]();
}

public static void main(String[] args) {

DoublyPlaylist d = new DoublyPlaylist();

[Link](1);
[Link](2);
[Link](3);

[Link]();
[Link]();

[Link](2);

[Link]();
}
}

5. Browser History using Stack


import [Link];

public class BrowserStack {

public static void main(String[] args) {

Stack<String> stack = new Stack<>();

[Link]("Google");
[Link]("YouTube");
[Link]("Wikipedia");

[Link]("Browser History:");
[Link](stack);

[Link]();

[Link]("After Back Navigation:");


[Link](stack);
}
}

6. Stack using Linked List


class StackNode {
int data;
StackNode next;

StackNode(int data) {
[Link] = data;
}
}

public class StackLinkedList {

StackNode top;

void push(int data) {

StackNode newNode = new StackNode(data);

[Link] = top;
top = newNode;
}

void pop() {

if(top == null) {
[Link]("Stack Empty");
} else {
[Link]("Deleted: " + [Link]);
top = [Link];
}
}

void display() {

StackNode temp = top;

while(temp != null) {
[Link]([Link] + " ");
temp = [Link];
}

[Link]();
}

public static void main(String[] args) {

StackLinkedList s = new StackLinkedList();

[Link](10);
[Link](20);
[Link](30);

[Link]();

[Link]();

[Link]();
}
}

7. Queue using Array


public class QueueArray {

int[] queue = new int[5];


int front = -1;
int rear = -1;

void enqueue(int data) {

if(rear == 4) {
[Link]("Queue Full");
} else {

if(front == -1)
front = 0;

queue[++rear] = data;
}
}

void dequeue() {

if(front == -1 || front > rear) {


[Link]("Queue Empty");
} else {
[Link]("Removed: " + queue[front++]);
}
}

void display() {

for(int i = front; i <= rear; i++) {


[Link](queue[i] + " ");
}

[Link]();
}

public static void main(String[] args) {

QueueArray q = new QueueArray();

[Link](1);
[Link](2);
[Link](3);

[Link]();

[Link]();

[Link]();
}
}

8. Queue using Linked List


class QNode {

int data;
QNode next;

QNode(int data) {
[Link] = data;
}
}

public class QueueLinkedList {

QNode front, rear;

void enqueue(int data) {

QNode newNode = new QNode(data);

if(rear == null) {
front = rear = newNode;
return;
}

[Link] = newNode;
rear = newNode;
}

void dequeue() {

if(front == null) {
[Link]("Queue Empty");
return;
}

[Link]("Removed: " + [Link]);


front = [Link];

if(front == null)
rear = null;
}

void display() {

QNode temp = front;

while(temp != null) {
[Link]([Link] + " ");
temp = [Link];
}

[Link]();
}

public static void main(String[] args) {


QueueLinkedList q = new QueueLinkedList();

[Link](11);
[Link](22);
[Link](33);

[Link]();

[Link]();

[Link]();
}
}

9. BST Program
class TreeNode {

int data;
TreeNode left, right;

TreeNode(int data) {
[Link] = data;
}
}

public class BSTExample {

TreeNode root;

TreeNode insert(TreeNode root, int data) {

if(root == null)
return new TreeNode(data);

if(data < [Link])


[Link] = insert([Link], data);
else
[Link] = insert([Link], data);

return root;
}

boolean search(TreeNode root, int key) {

if(root == null)
return false;

if([Link] == key)
return true;

if(key < [Link])


return search([Link], key);

return search([Link], key);


}

void inorder(TreeNode root) {

if(root != null) {
inorder([Link]);
[Link]([Link] + " ");
inorder([Link]);
}
}

public static void main(String[] args) {

BSTExample tree = new BSTExample();

[Link] = [Link]([Link], 50);


[Link]([Link], 30);
[Link]([Link], 70);

[Link]([Link]);

[Link]("\nSearch 30: " + [Link]([Link], 30));


}
}

10. AVL Tree


class AVLNode {

int key, height;


AVLNode left, right;

AVLNode(int d) {
key = d;
height = 1;
}
}

public class AVLTree {

AVLNode root;

int height(AVLNode n) {
return (n == null) ? 0 : [Link];
}

int getBalance(AVLNode n) {
return (n == null) ? 0 : height([Link]) - height([Link]);
}

AVLNode rightRotate(AVLNode y) {

AVLNode x = [Link];
AVLNode t2 = [Link];

[Link] = y;
[Link] = t2;

[Link] = [Link](height([Link]), height([Link])) + 1;


[Link] = [Link](height([Link]), height([Link])) + 1;

return x;
}

AVLNode insert(AVLNode node, int key) {

if(node == null)
return new AVLNode(key);

if(key < [Link])


[Link] = insert([Link], key);
else if(key > [Link])
[Link] = insert([Link], key);
else
return node;

[Link] = 1 + [Link](height([Link]), height([Link]));

int balance = getBalance(node);

if(balance > 1 && key < [Link])


return rightRotate(node);

return node;
}
}

11. DFS Traversal


public class DFSGraph {

int vertices = 5;

int[][] graph = {
{0,1,1,0,0},
{1,0,0,1,1},
{1,0,0,0,0},
{0,1,0,0,0},
{0,1,0,0,0}
};

boolean[] visited = new boolean[5];

void dfs(int v) {

visited[v] = true;

[Link](v + " ");

for(int i = 0; i < vertices; i++) {


if(graph[v][i] == 1 && !visited[i]) {
dfs(i);
}
}
}

public static void main(String[] args) {

DFSGraph g = new DFSGraph();

[Link](0);
}
}

12. BFS Traversal


import [Link];
import [Link];

public class BFSGraph {

int vertices = 5;

int[][] graph = {
{0,1,1,0,0},
{1,0,0,1,1},
{1,0,0,0,0},
{0,1,0,0,0},
{0,1,0,0,0}
};

void bfs(int start) {

boolean[] visited = new boolean[vertices];

Queue<Integer> q = new LinkedList<>();

visited[start] = true;
[Link](start);

while(![Link]()) {

int v = [Link]();

[Link](v + " ");

for(int i = 0; i < vertices; i++) {

if(graph[v][i] == 1 && !visited[i]) {

visited[i] = true;
[Link](i);
}
}
}
}

public static void main(String[] args) {

BFSGraph g = new BFSGraph();

[Link](0);
}
}

13. Hashing with Linear Probing


public class LinearProbing {

int size = 10;


int[] hashTable = new int[size];

LinearProbing() {

for(int i = 0; i < size; i++) {


hashTable[i] = -1;
}
}

void insert(int key) {


int index = key % size;
while(hashTable[index] != -1) {
index = (index + 1) % size;
}

hashTable[index] = key;
}

void search(int key) {

int index = key % size;

while(hashTable[index] != -1) {

if(hashTable[index] == key) {
[Link]("Key Found");
return;
}

index = (index + 1) % size;


}

[Link]("Key Not Found");


}

public static void main(String[] args) {

LinearProbing h = new LinearProbing();

[Link](10);
[Link](20);
[Link](30);

[Link](20);
}
}

14. Hashing with Chaining


import [Link];

public class HashChaining {

int size = 10;

LinkedList<Integer>[] table = new LinkedList[size];

HashChaining() {

for(int i = 0; i < size; i++) {


table[i] = new LinkedList<>();
}
}

void insert(int key) {

int index = key % size;

table[index].add(key);
}

void search(int key) {

int index = key % size;

if(table[index].contains(key))
[Link]("Key Found");
else
[Link]("Key Not Found");
}

public static void main(String[] args) {

HashChaining h = new HashChaining();

[Link](15);
[Link](25);
[Link](35);

[Link](25);
}
}
15. Bubble Sort
public class BubbleSort {

public static void main(String[] args) {

int[] marks = {78, 45, 90, 32, 67};

int n = [Link];

for(int i = 0; i < n - 1; i++) {

for(int j = 0; j < n - i - 1; j++) {

if(marks[j] > marks[j + 1]) {

int temp = marks[j];


marks[j] = marks[j + 1];
marks[j + 1] = temp;
}
}
}

[Link]("Sorted Array:");

for(int mark : marks) {


[Link](mark + " ");
}
}
}

16. Merge Sort


public class MergeSort {

void merge(int arr[], int left, int mid, int right) {

int n1 = mid - left + 1;


int n2 = right - mid;

int L[] = new int[n1];


int R[] = new int[n2];

for(int i = 0; i < n1; i++)


L[i] = arr[left + i];

for(int j = 0; j < n2; j++)


R[j] = arr[mid + 1 + j];

int i = 0, j = 0;
int k = left;

while(i < n1 && j < n2) {

if(L[i] <= R[j]) {


arr[k] = L[i];
i++;
} else {
arr[k] = R[j];
j++;
}

k++;
}

while(i < n1) {


arr[k] = L[i];
i++;
k++;
}

while(j < n2) {


arr[k] = R[j];
j++;
k++;
}
}

void sort(int arr[], int left, int right) {

if(left < right) {

int mid = (left + right) / 2;


sort(arr, left, mid);
sort(arr, mid + 1, right);

merge(arr, left, mid, right);


}
}

public static void main(String[] args) {

int arr[] = {55, 23, 87, 12, 45, 90};

MergeSort m = new MergeSort();

[Link](arr, 0, [Link] - 1);

for(int i : arr) {
[Link](i + " ");
}
}
}

You might also like