Przeglądaj źródła

Add Java code Stack and Queue

george 7 miesięcy temu
rodzic
commit
69e34f2abd

BIN
.DS_Store


BIN
unidad3/.DS_Store


BIN
unidad3/c++/.DS_Store


BIN
unidad3/c++/stack/.DS_Store


BIN
unidad3/java/.DS_Store


+ 83 - 0
unidad3/java/queue/Queue.java

@@ -0,0 +1,83 @@
+public class Queue<T> {
+    private Node<T> front; // Puntero al frente de la cola
+    private Node<T> rear;  // Puntero al final de la cola
+    private int size;     // Tamaño de la cola
+
+    // Clase interna para el nodo
+    private static class Node<T> {
+        T data;
+        Node<T> next;
+
+        Node(T data) {
+            this.data = data;
+            this.next = null;
+        }
+    }
+
+    // Constructor para la cola
+    public Queue() {
+        front = rear = null;
+        size = 0;
+    }
+
+    // Método para agregar un elemento a la cola
+    public void enqueue(T data) {
+        Node<T> newNode = new Node<>(data);
+        if (isEmpty()) {
+            front = rear = newNode;
+        } else {
+            rear.next = newNode;
+            rear = newNode;
+        }
+        size++;
+    }
+
+    // Método para eliminar un elemento de la cola
+    public T dequeue() {
+        if (isEmpty()) {
+            throw new IllegalStateException("La cola está vacía");
+        }
+        T data = front.data;
+        if (front == rear) {
+            front = rear = null;
+        } else {
+            front = front.next;
+        }
+        size--;
+        return data;
+    }
+
+    // Método para verificar si la cola está vacía
+    public boolean isEmpty() {
+        return front == null;
+    }
+
+    // Método para obtener el tamaño de la cola
+    public int size() {
+        return size;
+    }
+
+    // Método para imprimir los elementos de la cola
+    public void printQueue() {
+        Node<T> current = front;
+        while (current != null) {
+            System.out.print(current.data + " ");
+            current = current.next;
+        }
+        System.out.println();
+    }
+
+    // Método main para probar la implementación de la cola
+    public static void main(String[] args) {
+        Queue<Integer> queue = new Queue<>();
+        queue.enqueue(1);
+        queue.enqueue(2);
+        queue.enqueue(3);
+        System.out.println("Tamaño de la cola: " + queue.size());
+        queue.printQueue();
+        System.out.println("Desencolando: " + queue.dequeue());
+        System.out.println("Desencolando: " + queue.dequeue());
+        System.out.println("Tamaño de la cola después de desencolar dos elementos: " + queue.size());
+        queue.printQueue();
+    }
+}

+ 78 - 0
unidad3/java/stack/Stack.java

@@ -0,0 +1,78 @@
+public class Stack<T> {
+    private Node<T> top; // Puntero al tope de la pila
+    private int size;    // Tamaño de la pila
+
+    // Clase interna para el nodo
+    private static class Node<T> {
+        T data;
+        Node<T> next;
+
+        Node(T data) {
+            this.data = data;
+            this.next = null;
+        }
+    }
+
+    // Constructor para la pila
+    public Stack() {
+        top = null;
+        size = 0;
+    }
+
+    // Método para agregar un elemento a la pila
+    public void push(T data) {
+        Node<T> newNode = new Node<>(data);
+        if (isEmpty()) {
+            top = newNode;
+        } else {
+            newNode.next = top;
+            top = newNode;
+        }
+        size++;
+    }
+
+    // Método para eliminar un elemento de la pila
+    public T pop() {
+        if (isEmpty()) {
+            throw new IllegalStateException("La pila está vacía");
+        }
+        T data = top.data;
+        top = top.next;
+        size--;
+        return data;
+    }
+
+    // Método para verificar si la pila está vacía
+    public boolean isEmpty() {
+        return top == null;
+    }
+
+    // Método para obtener el tamaño de la pila
+    public int size() {
+        return size;
+    }
+
+    // Método para imprimir los elementos de la pila
+    public void printStack() {
+        Node<T> current = top;
+        while (current != null) {
+            System.out.print(current.data + " ");
+            current = current.next;
+        }
+        System.out.println();
+    }
+
+    // Método main para probar la implementación de la pila
+    public static void main(String[] args) {
+        Stack<Integer> stack = new Stack<>();
+        stack.push(1);
+        stack.push(2);
+        stack.push(3);
+        System.out.println("Tamaño de la pila: " + stack.size());
+        stack.printStack();
+        System.out.println("Desapilando: " + stack.pop());
+        System.out.println("Desapilando: " + stack.pop());
+        System.out.println("Tamaño de la pila después de desapilar dos elementos: " + stack.size());
+        stack.printStack();
+    }
+}