Project 1
1)EQUILIBRIUM POINT:
package basicthings;
public class Equilibrium {
int equilibriumpoint(int arr[], int n) {
int l,r;
for(int i=0;i<n;i++) {
l=0;
for(int j=0;j<i;j++)
l+=arr[j];
r=0;
for(int j=i+1;j<n;j++)
r+=arr[j];
if(l==r)
return i;
}
return -1;
}
public static void main(String[] args) {
Equilibrium eq=new Equilibrium();
int arr[]= {1,3,5,2,2};
int n=arr.length;
System.out.println("Equilibrium point:"+eq.equilibriumpoint(arr, n));
}
}
2)LeaderArray
package basicthings;
public class LeaderArray {
void Leaders(int arr[],int len) {
int right_val=arr[len-1];
System.out.println(right_val);
for(int i=len-2;i>=0;i--) {
if(right_val<arr[i]) {
right_val=arr[i];
System.out.println(right_val+" ");
}
}
}
public static void main(String[] args) {
LeaderArray lda=new LeaderArray();
int arr[]= {16,17,4,3,5,2};
int n=arr.length;
lda.Leaders(arr,n);
}
}
3) Reverse a Word in given String
package basicthings;
public class ReversedWords {
public static void main(String[] args) {
String str="I like programming very much";
String[] words=str.split(" ");
String reverse="";
for(int i=words.length-1;i>=0;i--) {
reverse=reverse+words[i]+" ";
}
System.out.println("Reversed sentences:");
System.out.println(reverse.substring(0, reverse.length()-1));
}
}
4)Duplicate:
package basicthings;
import java.io.*;
class ReversedWords {
public static void main(String[] args)
{
String s = "skilllync";
String temp = "" + s.charAt(0);
for (int i = 1; i < s.length(); i++) {
if (!temp.contains(String.valueOf(s.charAt(i))))
temp = temp + s.charAt(i);
}
System.out.println(temp);
}
}
5)Middle element in a linked list:
package basicthings;
public class MiddleElementInLinkedList {
Node head;
class Node{
int data;
Node next;
public Node(int data) {
this.data=data;
this.next=null;
}
}
void pushnode(int data) {
Node NewNode=new Node(data);
NewNode.next=head;
head=NewNode;
}
void printNode() {
Node temp=head;
while(temp!=null) {
System.out.println(temp.data);
temp=temp.next;
}
System.out.println("NULL");
}
public int getlen() {
int length=0;
Node temp=head;
while(temp!=null) {
length++;
temp=temp.next;
}
return length;
}
public void middle() {
if(head!=null) {
int n=getlen();
Node temp=head;
int ML=n/2;
while(ML!=0) {
temp=temp.next;
ML--;
}
System.out.println("The Middle Element is:"+temp.data);
System.out.println();
}
}
public static void main(String[] args) {
MiddleElementInLinkedList md=new MiddleElementInLinkedList();
for(int i=5;i>=1;i--) {
md.pushnode(i);
md.printNode();
md.middle();
}
}
}
6)
package basicthings;
public class ReversedLinkedList {
static Node head;
static class Node{
int data;
Node next;
public Node(int data) {
this.data=data;
this.next=null;
}
}
Node Reverse(Node node) {
Node temp=null;
Node key=node;
Node next=null;
while(key!=null) {
next=key.next;
key.next=temp;
temp=key;
key=next;
}
node=temp;
return node;
}
void printNode(Node node) {
while(node!=null) {
System.out.println(node.data+"");
node=node.next;
}
}
public static void main(String[] args) {
ReversedLinkedList rll=new ReversedLinkedList();
rll.head=new Node(74);
rll.head.next=new Node(15);
rll.head.next.next=new Node(98);
rll.head.next.next.next=new Node(42);
System.out.println("Given linked list:");
rll.printNode(head);
head=rll.Reverse(head);
System.out.println("Reversed Linked list");
rll.printNode(head);
}
}
7)pairwise:
package basicthings;
public class PairWiseSwap {
Node head;
class Node{
int data;
Node next;
public Node(int data) {
this.data=data;
this.next=null;
}
}
void Pair() {
Node temp=head;
while(temp!=null && temp.next!=null) {
int val=temp.data;
temp.data=temp.next.data;
temp.next.data=val;
temp=temp.next.next;
}
}
void push(int new_val) {
Node n1=new Node(new_val);
n1.next=head;
head=n1;
}
void printlist() {
Node temp=head;
while(temp!=null) {
System.out.println(temp.data+ " ");
temp=temp.next;
}
}
public static void main(String[] args) {
PairWiseSwap pws=new PairWiseSwap();
pws.push(2);
pws.push(3);
pws.push(8);
pws.push(6);
pws.push(7);
pws.push(4);
pws.printlist();
pws.Pair();
System.out.println("The paired values");
pws.printlist();
}
}
8)Represent Nodes:
void addTwoLists(Node first, Node second) {
Node start1 = new Node(0);
start1.next = first;
Node start2 = new Node(0);
start2.next = second;
addPrecedingZeros(start1, start2);
Node result = new Node(0);
if (sumTwoNodes(start1.next, start2.next, result) == 1) {
Node node = new Node(1);
node.next = result.next;
result.next = node;
}
printList(result.next);
}
private int sumTwoNodes(Node first, Node second, Node result) {
if (first == null) {
return 0;
}
int number = first.data + second.data + sumTwoNodes(first.next, second.next, result);
Node node = new Node(number % 10);
node.next = result.next;
result.next = node;
return number / 10;
}
private void addPrecedingZeros(Node start1, Node start2) {
Node next1 = start1.next;
Node next2 = start2.next;
while (next1 != null && next2 != null) {
next1 = next1.next;
next2 = next2.next;
}
if (next1 == null && next2 != null) {
while (next2 != null) {
Node node = new Node(0);
node.next = start1.next;
start1.next = node;
next2 = next2.next;
}
} else if (next2 == null && next1 != null) {
while (next1 != null) {
Node node = new Node(0);
node.next = start2.next;
start2.next = node;
next1 = next1.next;
}
}
}
void printList(Node head) {
while (head != null) {
System.out.print(head.data + " ");
head = head.next;
}
System.out.println("");
}
9)Tree to DLL:
class Node
{
int data;
Node l, r;
public Node(int data)
{
this.data = data;
l = r = null;
}
}
class BinaryTree
{
Node root;
Node head;
static Node prev = null;
void B2D(Node root)
{
if (root == null)
return;
B2D(root.l);
if (prev == null)
head = root;
else
{
root.l = prev;
prev.r = root;
}
prev = root;
B2D(root.r);
}
void printList(Node node)
{
while (node != null)
{
System.out.print(node.data + " ");
node = node.r;
}
}
public static void main(String[] args)
{
BinaryTree tree = new BinaryTree();
tree.root = new Node(10);
tree.root.l = new Node(12);
tree.root.r = new Node(15);
tree.root.l.l = new Node(25);
tree.root.l.r = new Node(30);
tree.root.r.l = new Node(36);
tree.B2D(tree.root);
tree.printList(tree.head);
}
}
10)
import java.util.*;
import java.lang.*;
import java.io.*;
class Bellman {
class Edge {
int src, dest, weight;
Edge()
{
src = dest = weight = 0;
}
};
int V, E;
Edge edge[];
Bellman(int v, int e)
{
V = v;
E = e;
edge = new Edge[e];
for (int i = 0; i < e; ++i)
edge[i] = new Edge();
}
void BellmanFord(Bellman Bellman, int src)
{
int V = Bellman.V, E = Bellman.E;
int dist[] = new int[V];
for (int i = 0; i < V; ++i)
dist[i] = Integer.MAX_VALUE;
dist[src] = 0;
for (int i = 1; i < V; ++i) {
for (int j = 0; j < E; ++j) {
int u = Bellman.edge[j].src;
int v = Bellman.edge[j].dest;
int weight = Bellman.edge[j].weight;
if (dist[u] != Integer.MAX_VALUE && dist[u] + weight < dist[v])
dist[v] = dist[u] + weight;
}
}
for (int j = 0; j < E; ++j) {
int u = Bellman.edge[j].src;
int v = Bellman.edge[j].dest;
int weight = Bellman.edge[j].weight;
if (dist[u] != Integer.MAX_VALUE && dist[u] + weight < dist[v]) {
System.out.println("Bellman contains negative weight cycle");
return;
}
}
printArr(dist, V);
}
void printArr(int dist[], int V)
{
System.out.println("Vertex Distance from Source");
for (int i = 0; i < V; ++i)
System.out.println(i + "\t\t" + dist[i]);
}
public static void main(String[] args)
{
int V = 5;
int E = 8;
Bellman Bellman = new Bellman(V, E);
Bellman.edge[0].src = 0;
Bellman.edge[0].dest = 1;
Bellman.edge[0].weight = -1;
Bellman.edge[1].src = 0;
Bellman.edge[1].dest = 2;
Bellman.edge[1].weight = 4;
Bellman.edge[2].src = 1;
Bellman.edge[2].dest = 2;
Bellman.edge[2].weight = 3;
Bellman.edge[3].src = 1;
Bellman.edge[3].dest = 3;
Bellman.edge[3].weight = 2;
Bellman.edge[4].src = 1;
Bellman.edge[4].dest = 4;
Bellman.edge[4].weight = 2;
Bellman.edge[5].src = 3;
Bellman.edge[5].dest = 2;
Bellman.edge[5].weight = 5;
Bellman.edge[6].src = 3;
Bellman.edge[6].dest = 1;
Bellman.edge[6].weight = 1;
Bellman.edge[7].src = 4;
Bellman.edge[7].dest = 3;
Bellman.edge[7].weight = -3;
Bellman.BellmanFord(Bellman, 0);
}
}
11)Minimum swap:
package basicthings;
import java.util.*;
import java.io.*;
class MinimumSwap
{
public static int minSwaps(int[] nums)
{
int len = nums.length;
HashMap<Integer, Integer> map = new HashMap<>();
for(int i=0;i<len;i++)
map.put(nums[i], i);
Arrays.sort(nums);
boolean[] visited = new boolean[len];
Arrays.fill(visited, false);
int ans = 0;
for(int i=0;i<len;i++) {
if(visited[i] || map.get(nums[i]) == i)
continue;
int j = i, c_size = 0;
while(!visited[j]) {
visited[j] = true;
j = map.get(nums[j]);
c_size++;
}
if(c_size > 0) {
ans += (c_size - 1);
}
}
return ans;
}
}
class MinSwaps
{
public static void main(String[] args)
{
int []a = {1, 5, 4, 3, 2};
MinimumSwap g = new MinimumSwap();
System.out.println(g.minSwaps(a));
}
}
12)
package basicthings;
import java.util.*;
class MyStack
{
Stack<Integer> s;
Integer minEle;
MyStack() {
s = new Stack<Integer>();
}
void getMin()
{
if (s.isEmpty())
System.out.println("Stack is empty");
else
System.out.println("Minimum Element in the " +
" stack is: " + minEle);
}
void peek()
{
if (s.isEmpty())
{
System.out.println("Stack is empty ");
return;
}
Integer t = s.peek();
System.out.print("Top Most Element is: ");
if (t < minEle)
System.out.println(minEle);
else
System.out.println(t);
}
void pop()
{
if (s.isEmpty())
{
System.out.println("Stack is empty");
return;
}
System.out.print("Top Most Element Removed: ");
Integer t = s.pop();
if (t < minEle)
{
System.out.println(minEle);
minEle = 2*minEle - t;
}
else
System.out.println(t);
}
void push(Integer x)
{
if (s.isEmpty())
{
minEle = x;
s.push(x);
System.out.println("Number Inserted: " + x);
return;
}
if (x < minEle)
{
s.push(2*x - minEle);
minEle = x;
}
else
s.push(x);
System.out.println("Number Inserted: " + x);
}
};
public class Main
{
public static void main(String[] args)
{
MyStack s = new MyStack();
s.push(3);
s.push(5);
s.getMin();
s.push(2);
s.push(1);
s.getMin();
s.pop();
s.getMin();
s.pop();
s.peek();
}
}
If you are trying to excute the codes, remove the package names.