Data Structure
Data Structure
GraphMatrix(int v) {
vertices = v;
adjMatrix = new int[v][v];
}
void display() {
for (int i = 0; i < vertices; i++) {
for (int j = 0; j < vertices; j++)
System.out.print(adjMatrix[i][j] + " ");
System.out.println();
}
}
import java.util.*;
class GraphList {
List<List<Integer>> adjList;
GraphList(int v) {
adjList = new ArrayList<>();
for (int i = 0; i < v; i++)
adjList.add(new ArrayList<>());
}
void display() {
for (int i = 0; i < adjList.size(); i++)
System.out.println(i + ": " + adjList.get(i));
}
class GraphTraversal {
int V;
List<List<Integer>> adj;
GraphTraversal(int v) {
V = v;
adj = new ArrayList<>();
for (int i = 0; i < v; i++)
adj.add(new ArrayList<>());
}
while (!q.isEmpty()) {
int v = q.poll();
System.out.print(v + " ");
for (int u : adj.get(v)) {
if (!visited[u]) {
visited[u] = true;
q.add(u);
}
}
}
}
public static void main(String[] args) {
GraphTraversal g = new GraphTraversal(5);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 3);
g.addEdge(2, 4);
System.out.print("DFS: ");
g.DFS(0, new boolean[5]);
System.out.print("\nBFS: ");
g.BFS(0);
}
}
// Graph:
// 0->1:4, 0->2:1, 2->1:2, 1->3:1
// From 0: shortest to 3 = 0→2→1→3 = 1+2+1 = 4
class LinearProbing {
int size = 10;
int[] table = new int[size];
LinearProbing() {
Arrays.fill(table, -1);
}
void insert(int key) {
int idx = key % size;
while (table[idx] != -1) idx = (idx + 1) % size;
table[idx] = key;
}
void display() {
System.out.println(Arrays.toString(table));
}
public static void main(String[] args) {
LinearProbing ht = new LinearProbing();
int[] keys = {23, 43, 13, 27}; // all %10
for (int key : keys) ht.insert(key);
ht.display();
}
}
2. Numerical:
1. ArrayList
import java.util.*;
2. HashMap
import java.util.*;
3. PriorityQueue
import java.util.*;
CodingPart:
1. HashMap: Employees and Departments
import java.util.*;
ed.listEmployeesByDepartment("IT");
}
}
import java.util.*;
import java.util.*;
public class KMostFrequent {
public static List<Integer> topKFrequent(int[] nums, int k) {
Map<Integer, Integer> freqMap = new HashMap<>();
PriorityQueue<Map.Entry<Integer, Integer>> pq =
new PriorityQueue<>((a, b) -> a.getValue() - b.getValue());
import java.util.*;
// Add a mark
public void addMark(int mark) {
marks.add(mark);
}
import java.util.*;