Data Structures & Algorithms

Run Settings
LanguageJava
Language Version
Run Command
import java.io.*; import java.lang.*; import java.util.*; class Main { public static void get(int[] array, int index){ int result = array[index]; System.out.println("Value of index " + index + " is " + result); } public static int[] create_array(int size){ int[] new_array; new_array = new int[size]; System.out.println("The array it's crated, size: " + new_array.length); return new_array; } public static void fill_array(int[] array, int index, int value){ array[index] = value; } public static void reverse_string(String value){ System.out.println("Origianl word: " + value); String ls_word = ""; char ch; for (int i=0; i<value.length(); i++){ ch= value.charAt(i); //extracts each character ls_word= ch+ls_word; //adds each character in front of the existing string } System.out.println("Reversed word: "+ ls_word); } public static int[] MergeSortedArrays(int[] FirstArray, int[] SecondArray){ int MergedArray[]; MergedArray = new int [(FirstArray.length) + (SecondArray.length)]; int i=0, j=0, k=0; while (i < FirstArray.length && j < SecondArray.length) { if (FirstArray[i] < SecondArray[j]) { MergedArray[k] = FirstArray[i]; i++; k++; }else{ MergedArray[k] = SecondArray[j]; j++; k++; } } while (i < FirstArray.length) { MergedArray[k] = FirstArray[i]; i++; k++; } while (j < SecondArray.length) { MergedArray[k] = SecondArray[j]; j++; k++; } //funcion predefinida para juntar 2 arrays //System.arraycopy(FirstArray, 0, MergedArray, 0, FirstArray.length); //System.arraycopy(SecondArray, 0, MergedArray, FirstArray.length, SecondArray.length); return MergedArray; } public static boolean undefined_array(int[] value){ for(int i=0; i < value.length; i++){ for(int j=i+1; j < value.length; j++){ if(value[i] == value[j]){ System.out.println(value[i]); return true; } } } //System.out.println("Undefined"); return false; } public static void insertLinkedList(LinkedList<Integer> list, int index, int value){ list.add(index,value); } public static void removeLinkedList(LinkedList<Integer> list){ list.remove(); } static void stack_push(Stack<Integer> stack){ for(int i=0; i<5; i++){ stack.push(i); } } static void stack_pop(Stack<Integer> stack){ for(int i=0; i<5; i++){ int y = (Integer)stack.pop(); System.out.println(y); } } static void stack_peek(Stack<Integer> stack){ int element = (int)stack.peek(); System.out.println("Element on stack top is: "+ element); } static void stack_search(Stack<Integer> stack, int element){ int pos = (int)stack.search(element); if(pos == -1){ System.out.println("Element " + element + " not found"); }else{ System.out.println("Element: " + element + " is found at position " + pos); } } static int findFactorialIterative(int number){ int bandera = number - 1; int value = number; int result = 1; for(int i = 1; i < number; i++){ if (i == 1){ result = value * bandera; }else{ result = result * bandera; } bandera = bandera - 1; } return result; } static int findFactorialRecursive(int number){ if(number == 2){ return 2; } return number * findFactorialRecursive(number - 1); } static int fibonacciRecursive(int number){ if(number < 2){ return number; } return fibonacciRecursive(number - 1) + fibonacciRecursive(number - 2); } class Node { int key; Node left, right; public Node(int item) { key = item; left = right = null; } } // Root of BST Node root; // Constructor void BinarySearchTree() { root = null; } void BinarySearchTree(int value) { root = new Node(value); //return root; } // This method mainly calls insertRec() void insert(int key) { root = insertRec(root, key); } Node insertRec(Node root, int key) { /* If the tree is empty, return a new node */ if (root == null) { root = new Node(key); return root; } /* Otherwise, recur down the tree */ else if (key < root.key) root.left = insertRec(root.left, key); else if (key > root.key) root.right = insertRec(root.right, key); /* return the (unchanged) node pointer */ return root; } void inorder() { inorderRec(root); } // A utility function to // do inorder traversal of BST void inorderRec(Node root) { if (root != null) { inorderRec(root.left); System.out.println(root.key); inorderRec(root.right); } } public static void main(String[] args) { System.out.println("Hello World! ----> Arrays"); int[] main_array; int[] second_array; int[] la_MergedArray; ////////////////////////////////////// int[] la_excersiseArray = new int[10]; la_excersiseArray[0]=2; la_excersiseArray[1]=5; la_excersiseArray[2]=1; la_excersiseArray[3]=2; la_excersiseArray[4]=3; la_excersiseArray[5]=5; la_excersiseArray[6]=1; la_excersiseArray[7]=2; la_excersiseArray[8]=4; la_excersiseArray[9]=5; ///////////////////////////////////////////// main_array = create_array(10); second_array = create_array(10); int li_size_array = main_array.length; int li_sec_size_array = second_array.length; for(int i = 0; i < li_size_array; i++){ int x = i+i+1; fill_array(main_array,i,x+1); } for(int i = 0; i < li_sec_size_array; i++){ int x = i+i+1; fill_array(second_array,i,x); } System.out.println("Main array " + Arrays.toString(main_array)); System.out.println("Second array " + Arrays.toString(second_array)); get(main_array,6); reverse_string("Oscar Medina"); la_MergedArray = MergeSortedArrays(main_array, second_array); System.out.println("Second array " + Arrays.toString(la_MergedArray)); System.out.println("-----------------------------------------------------------"); System.out.println("Hello World! ----> Hash Tables"); Hashtable<Integer, String> ht1 = new Hashtable<>(); Hashtable<Integer, String> ht2 = new Hashtable<Integer,String>(); ht1.put(1,"one"); ht1.put(2,"two"); ht1.put(3,"three"); ht1.put(4,"four"); ht2.put(5,"five"); ht2.put(6,"six"); ht2.put(7,"seven"); ht2.put(8,"eigth"); System.out.println("HashTable1: " + ht1); System.out.println("HashTable2: " + ht2); Enumeration enuHt1 = ht1.keys(); Enumeration enuHt2 = ht2.keys(); System.out.println("Keys for ht1"); while (enuHt1.hasMoreElements()) { // Displaying the Enumeration System.out.println(enuHt1.nextElement()); } System.out.println("Keys for ht2"); while (enuHt2.hasMoreElements()) { // Displaying the Enumeration System.out.println(enuHt2.nextElement()); } System.out.println("Excercise undefined"); boolean lb_undefined = undefined_array(la_excersiseArray); System.out.println(lb_undefined); System.out.println("-----------------------------------------------------------"); System.out.println("Hello World! ----> Linked Lists"); LinkedList<Integer> firstLinkList = new LinkedList<Integer>(); firstLinkList.add(5); firstLinkList.add(10); firstLinkList.add(16); System.out.println(firstLinkList); firstLinkList.add(1,16); insertLinkedList(firstLinkList,1,18); System.out.println(firstLinkList); firstLinkList.addFirst(9); System.out.println(firstLinkList); removeLinkedList(firstLinkList); //remove method remove the head of the linkedlist System.out.println(firstLinkList); //reverse LinkedList list = new LinkedList(); /*list.head = new Node(85); list.head.next = new Node(15); list.head.next.next = new Node(4); list.head.next.next.next = new Node(20); System.out.println("Given Linked list"); list.printList(head); head = list.reverse(head); System.out.println(""); System.out.println("Reversed linked list "); list.printList(head);*/ System.out.println("-----------------------------------------------------------"); System.out.println("Hello World! ----> Stacks and Queues"); System.out.println("Stacks"); Stack<Integer> stack = new Stack<Integer>(); stack_push(stack); stack_pop(stack); stack_push(stack); stack_peek(stack); stack_search(stack, 2); stack_search(stack, 6); System.out.println("Queues"); Queue<Integer> q1= new LinkedList<Integer>(); for(int i = 0; i<10; i++){ q1.add(i*10); } System.out.println("Elements in Queue: " + q1); System.out.println("Elements remove: " + q1.remove()); System.out.println("Elements head: " + q1.element()); System.out.println("Poll() remove an return HJead in Queue: " + q1.poll()); System.out.println("Peek in Queue: " + q1.peek()); System.out.println("Final Queue: " + q1); System.out.println("-----------------------------------------------------------"); System.out.println("Hello World! ----> Algorithms"); int li_factorial = findFactorialIterative(10); System.out.println("Factorial Iterative es: " + li_factorial); int li_factorialRec = findFactorialRecursive(10); System.out.println("Factorial Recursive es: " + li_factorialRec); int li_fibonacciRec = fibonacciRecursive(10); System.out.println("Factorial Recursive es: " + li_fibonacciRec); System.out.println("-----------------------------------------------------------"); System.out.println("Hello World! ----> Binary Tree"); //BinarySearchTree tree = new BinarySearchTree(); /* tree.insert(50); tree.insert(30); tree.insert(20); tree.insert(40); tree.insert(70); tree.insert(60); tree.insert(80); // print inorder traversal of the BST tree.inorder(); */ } }
Editor Settings
Theme
Key bindings
Full width
Lines