From 6f5674c8ecd25377b6b9f8977ea02768e4f61266 Mon Sep 17 00:00:00 2001 From: srsandy Date: Mon, 1 Oct 2018 02:20:07 +0530 Subject: [PATCH] added algo --- .DS_Store | Bin 0 -> 6148 bytes Java/.DS_Store | Bin 0 -> 6148 bytes Java/algorithms/.DS_Store | Bin 0 -> 6148 bytes Java/algorithms/Huffman.java | 183 +++++++++++++++++++++++ Java/data-structures/.DS_Store | Bin 0 -> 6148 bytes Java/data-structures/DoubleLinklist.java | 153 +++++++++++++++++++ Java/data-structures/LinkedList.java | 165 ++++++++++++++++++++ 7 files changed, 501 insertions(+) create mode 100644 .DS_Store create mode 100644 Java/.DS_Store create mode 100644 Java/algorithms/.DS_Store create mode 100644 Java/algorithms/Huffman.java create mode 100644 Java/data-structures/.DS_Store create mode 100644 Java/data-structures/DoubleLinklist.java create mode 100644 Java/data-structures/LinkedList.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..72403301138de352fc6ec82694216c434abc5176 GIT binary patch literal 6148 zcmeHK%Wl&^6ur}!)(JxK0;yekgTx|22~;gog%t8w1Obh3fd!z{#!+L*^;C(|sDvPI z_y^z*_!Pc?58(sg%!A5tlNAy|Xs$GK?#$dXmd_o}c!-F#reTA~AtD<^pjAP&!o;{J zS8PM~Tn92SM=$1YgO~?siwTVx1&jj!wgTeYwdf9=P(*3r`#r$e?Vr-*OH`>%hxC+= z=o$5>MbF_K!uP;GrLe&MT40yJ?o)p`iftF7EP6yfos(aP`?xMHm`%>~p7Sj@i=#Zj95%OAfIt-ha*0_`7h9$)%?@FE({2F}ekPf|Zh zhGR*N!XZLlzl@TQ&suz%gcCWBrv_}hY?lYl&V1guzgu(f?$sAHcfP-0uerPT_7;n> zy?v|kpm%(F@oxTp@!_+SlNdHlX;qEC;R~EgAd@GMrdb zp{b1mMuBAoN~-CI^S`_P{=ZBzEu(-@;J;FUSsky_!Yk>s^~%eMv(`m9MiD0BGKG?Y kN*~A45l8V3iZqP5!T~llW(v^*Gd}`S22&XY{;C4M01F_+9smFU literal 0 HcmV?d00001 diff --git a/Java/.DS_Store b/Java/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..270b1cb977e4e7121e3797975ddbfd683f3897a9 GIT binary patch literal 6148 zcmeHK-A)uS6h4L3?T#_*g$Z2t#>9)&>?#2hV=`Isf;*EjasdWrmjWaE!gX0teqKBdWcxBKLs%&RcXlR}fzI6;@4tu&A2cqr>UF7-HpNpRlb zo!#!rWHNZY+7mC=`qQ46tgrWbV)fP9blTy|PX})|_YS`vPfn)azH14HVY}0|WbqID zKyal%UxFgfWPX6W;x0kz5aNaOoJwFpHSGgyM9F12*)kaCU%?IRyDIDr)4n7zG;?;X z0`^bLA6?taC7l9Jf%~X{+8+d5p>MG!lG}nF^CL|87k0F znZ05#Lr1%?{d|j!K|?2IFCWZ4nb{i((@)3vLU$+T8+4^pz$tK1fkjj8s`LN--|zny zNv`G;a0=Wh1z2k%*cf6;_H3P-oH}a-d=IWn^=k}j3JQB1>p&gFD{yVd2^9c+i;Y3F Qz}$y`mcbQHf&Z$&89&3yvH$=8 literal 0 HcmV?d00001 diff --git a/Java/algorithms/.DS_Store b/Java/algorithms/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..466079f8f84b85140089568d61a6c1d1a50f3775 GIT binary patch literal 6148 zcmeHKJx>Bb5Pc&gl1M>mxuq3}watcLqP2fO@H9dYDy*;bXX~2}2$$2=LT4^BZ+CXy z?cFQ(1Axr-%{4FqFrq8sLqp$mT)k&!kx>+TM}ucD=r<)&BteL}hCnBo;HG<=Ty z-I62vSvT~nPcycFG48O(3!gVEuqAg*e8LOY#p5rv6=avm|5b6A~rko#mXVoF=Hx_3Un11cz2@v|1JH8`+t{|y;L9-_)`kV zaQ-l#@t0z6?fsnYwT1pjKNxGRoS}0FU`My&%agjIZPwMm*3sz98=aU30o5ff75EJW Fz5p<|DEj~a literal 0 HcmV?d00001 diff --git a/Java/algorithms/Huffman.java b/Java/algorithms/Huffman.java new file mode 100644 index 0000000..6f853c2 --- /dev/null +++ b/Java/algorithms/Huffman.java @@ -0,0 +1,183 @@ +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Comparator; +import java.util.HashMap; +import java.util.PriorityQueue; + +class HuffmanNode { + + int data; + char c; + + HuffmanNode left; + HuffmanNode right; +} + +class MyComparator implements Comparator { + + public int compare(HuffmanNode x, HuffmanNode y) { + return x.data - y.data; + } +} + +class HuffmanBuild { + + private HashMap hash_map; + private HashMap new_hash_map; + private PriorityQueue q; + private String filename; + + public HuffmanBuild(String filename) { + hash_map = new HashMap(); + new_hash_map = new HashMap(); + this.filename = filename; + } + + private void makeFrequencyMap(Character c) { + + if (hash_map.containsKey(c)) { + hash_map.put(c, hash_map.get(c) + 1); + } else { + hash_map.put(c, 1); + } + } + + private void makePriorityQueue() { + int size = hash_map.size(); + q = new PriorityQueue(size, new MyComparator()); + + for (Character alphabet : hash_map.keySet()) { + HuffmanNode hn = new HuffmanNode(); + + hn.c = alphabet; + hn.data = hash_map.get(alphabet); + + hn.left = null; + hn.right = null; + + q.add(hn); + } + + generateHuffmanTree(); + } + + private void generateHuffmanTree() { + + HuffmanNode root = null; + + while (q.size() > 1) { + + HuffmanNode x = q.peek(); + q.poll(); + + HuffmanNode y = q.peek(); + q.poll(); + + HuffmanNode f = new HuffmanNode(); + + f.data = x.data + y.data; + f.c = '-'; + + f.left = x; + f.right = y; + + root = f; + + q.add(f); + } + + generateCharCode(root, ""); + printMap(); + printCode(); + + } + + private void generateCharCode(HuffmanNode root, String s) { + + if (root.left == null && root.right == null) { + // System.out.println(root.c + ":" + s); + new_hash_map.put(root.c, s); + return; + } + + generateCharCode(root.left, s + "0"); + generateCharCode(root.right, s + "1"); + } + + private void printCode() { + File file; + + try { + + file = new File(filename); + BufferedReader br = new BufferedReader(new FileReader(file)); + + String line; + StringBuilder sb = new StringBuilder(); + + while ((line = br.readLine()) != null) { + + for(int i=0; ixVD%d(=@r6jg=#I2vOPlC)j2s1)*NfF`y4dlyhJ9o} z_U;hpc)%la{+j(;P1z%Vi%aU+y9zDf1Y`Ox@l4-b?Gm0NJR!p?vatJ2^xN;E*M2&# zO21*$74A@Sjt$E`HRGI;Ux792Lt@DsJXTuIu)v)5hPipJ<^?_VE?J*5vX7gPAFZ60 zr}j94XGDb=v7#ko_J3X@v%HO2b}>;l=A6I4DCU@d^1;zei~(c77}z%kcxH=qjsse0 z3>X8(K*NB19}=oy8nF(jpAHuK1R%;aQiZl$8YL!)m`1DvvWMbAC^3Y(_{4A_ob5^U zOC#0+LpWS~e7HEXi!T(Xvvd4J-Qm)JRvH7wz%~O1q1u)6fAszPe>=!(#(**KuNZLc z;bb`AlH%FAvp6|x6Y4!xMEvT2O$ZG=is>sy@hMe>?THw~G-4f)Efl*5C=FH^1AofE E2LY2=vj6}9 literal 0 HcmV?d00001 diff --git a/Java/data-structures/DoubleLinklist.java b/Java/data-structures/DoubleLinklist.java new file mode 100644 index 0000000..6f84e6f --- /dev/null +++ b/Java/data-structures/DoubleLinklist.java @@ -0,0 +1,153 @@ +class Node { + int data; + Node fLink; + Node bLink; + + Node(int data) { + this.data = data; + this.fLink = this.bLink = null; + } +} + +class DoubleLinklist { + private Node start; + private int length; + + DoubleLinklist() { + this.start = null; + this.length = 0; + } + + public void insertBeg(int data) { + Node newNode = new Node(data); + + if(start == null) { + start = newNode; + } else { + start.bLink = newNode; + newNode.fLink = start; + start = newNode; + } + + length++; + } + + public void insetEnd(int data) { + Node newNode = new Node(data); + + if(start == null) { + start = newNode; + } else { + Node n = start; + + while(n.fLink != null) { + n = n.fLink; + } + + n.fLink = newNode; + newNode.bLink = n; + } + + length++; + } + + public void insetPos(int data, int pos) { + if(pos == 1) { + insertBeg(data); + } else if(pos > length ) { + insetEnd(data); + } else { + + int i=1; + Node n = start; + + while( n.fLink != null ) { + i++; + if( i == pos) break; + n = n.fLink; + } + + Node newNode = new Node(data); + + newNode.bLink = n; + newNode.fLink = n.fLink; + n.fLink.bLink = newNode; + n.fLink = newNode; + + length++; + + } + } + + public void deleteBeg() { + if(start == null) { + System.out.println("list empty"); + } else { + start = n.fLink; + start.bLink = null; + } + + length--; + } + + public void deleteEnd() { + if(start == null) { + System.out.println("list empty"); + } else { + Node n = start; + + while(n.fLink.fLink != null) { + n = n.fLink; + } + + n.fLink.bLink = null; + n.fLink = null; + length--; + } + } + + + public void displayForward() { + Node n = start; + while(n.fLink != null) { + System.out.print(n.data + " -> "); + n = n.fLink; + } + System.out.print(n.data + " "); + } + + public void displayBackward() { + Node n = start; + while(n.fLink != null) { + n = n.fLink; + } + + while(n.bLink != null) { + System.out.print(n.data + " <- "); + n = n.bLink; + } + System.out.print(n.data + " "); + } + + public static void main(String[] args) { + doubleLinklist dl = new doubleLinklist(); + + dl.insertBeg(10); + dl.insertBeg(20); + dl.insertBeg(30); + dl.insetEnd(40); + + dl.insetPos(2,4); + + dl.displayForward(); // 30 -> 20 -> 10 -> 2 -> 40 + System.out.println(); + + dl.deleteEnd(); + dl.deleteBeg(); + + dl.displayForward(); // 20 -> 10 -> 2 + System.out.println(); + + dl.displayBackward(); // 2 <- 10 <- 20 + } +} \ No newline at end of file diff --git a/Java/data-structures/LinkedList.java b/Java/data-structures/LinkedList.java new file mode 100644 index 0000000..625de32 --- /dev/null +++ b/Java/data-structures/LinkedList.java @@ -0,0 +1,165 @@ +class Node { + int data; + Node link; + + public Node(int data) { + this.data = data; + this.link = null; + } + + public int getData() { + return data; + } +} + +class LinkedList { + private Node start; + private int length; + + LinkedList() { + start = null; + length = 0; + } + + public void insertBeg(int data) { + Node newNode = new Node(data); + + if(start == null) { + start = newNode; + }else { + newNode.link = start; + start = newNode; + } + + length++; + } + + public void insertEnd(int data) { + Node newNode = new Node(data); + + if(start == null) { + start = newNode; + }else { + Node n = start; + + while(n.link != null) { + n = n.link; + } + + n.link = newNode; + } + + length++; + } + + public void insetPos(int data, int pos) { + if(pos < 0) { + System.out.println("Pos does not"); + return; + } + + if(pos == 1) { + insertBeg(data); + } else if( pos > length) { + insertEnd(data); + } else { + int i=1; + Node n = start; + + while( n.link != null ) { + i++; + if( i == pos) break; + n = n.link; + } + + Node newNode = new Node(data); + newNode.link = n.link; + n.link = newNode; + + length++; + } + } + + public void deleteBeg() { + if(start == null) { + System.out.println("linkedlist Empty"); + } else { + start = start.link; + length--; + } + } + + public void deleteEnd() { + if(start == null) { + System.out.println("linkedlist Empty"); + } else if(start.link == null) { + start = null; + length = 0; + } else { + Node n = start; + + while(n.link.link != null) { + n = n.link; + } + + n.link = null; + length--; + } + } + + public void deletePos(int pos) { + if(pos < 0) { + System.out.println("Pos does not"); + return; + } + + if(pos == 1) { + deleteBeg(); + } else if( pos > length) { + deleteEnd(); + } else { + int i=1; + Node n = start; + + while( n.link != null ) { + i++; + if( i == pos) break; + n = n.link; + } + + n.link = n.link.link; + length--; + } + } + + public void display() { + Node n = start; + + while(n != null) { + System.out.print(n.data + " "); + n = n.link; + } + System.out.println(); + } + + public static void main(String[] args) { + LinkedList sl = new LinkedList(); + + sl.insertBeg(10); + sl.insertBeg(20); + sl.insertBeg(30); + sl.insertEnd(40); + + sl.insetPos(60,5); + sl.insetPos(5,5); + + sl.display(); + sl.deleteBeg(); + sl.display(); + sl.deleteEnd(); + sl.display(); + sl.deletePos(2); + sl.display(); + } + +}