JDataForge es una librería de Java que proporciona una variedad de estructuras de datos, incluyendo pilas, colas, listas enlazadas, árboles binarios y árboles AVL. Esta librería está diseñada para ser flexible y fácil de usar en tus proyectos de programación.
- Pilas (
ForgeStack): Estructura de datos LIFO (Last In, First Out). - Colas (
ForgeQueue): Estructura de datos FIFO (First In, First Out). - Listas Enlazadas (
ForgeSequence,ForgeDual,ForgeRing,ForgeChain): Variantes de listas con diferentes comportamientos y estructuras. - Árboles Binarios (
ForgeBinaryTree): Estructura de datos con nodos organizados en un formato jerárquico. - Árboles AVL (
ForgeAVLTree): Un tipo especial de árbol binario autobalanceado.
Puedes descargar el archivo JDataForge.jary agregarlo directamente en tus proyectos.
Si genera error al usarlo, te recomiendo compilarlo.
-
Clona el repositorio:
git clone https://github.com/tu_usuario/JDataForge.git
-
Compila el proyecto usando Ant:
cd JDataForge ant build -
Encuentra el archivo JAR en el directorio
dist:dist/JDataForge.jar
-
Agrega el archivo JAR a tu proyecto Java.
import com.jangelmm.dataforge.basics.ForgeStack;
public class TestForgeStack {
public static void main(String[] args) {
ForgeStack<Integer> stack = new ForgeStack<>();
stack.push(10);
stack.push(20);
stack.push(30);
System.out.println("Top element: " + stack.peek());
stack.traverseStack();
System.out.println(stack.pop());
System.out.println(stack.isEmpty());
}
}import com.jangelmm.dataforge.basics.ForgeQueue;
public class TestForgeQueue {
public static void main(String[] args) {
ForgeQueue<Integer> queue = new ForgeQueue<>();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
System.out.println("Front element: " + queue.peekFront());
System.out.println(queue.dequeue());
System.out.println(queue.isEmpty());
}
}import com.jangelmm.dataforge.list.ForgeSequence;
public class TestForgeSequence {
public static void main(String[] args) {
ForgeSequence<Integer> sequence = new ForgeSequence<>();
sequence.insert(5);
sequence.insert(2);
sequence.insert(9);
sequence.printAscending();
sequence.printDescending();
System.out.println(sequence.contains(9));
sequence.removeFirst();
sequence.removeLast();
sequence.removeAt(1);
}
}import com.jangelmm.dataforge.list.ForgeDual;
public class TestForgeDual {
public static void main(String[] args) {
ForgeDual<Integer> list = new ForgeDual<>();
list.insertAtStart(3);
list.insertAtEnd(4);
list.printListAscending();
list.removeHead();
list.removeTail();
list.removeElement(2);
}
}import com.jangelmm.dataforge.list.ForgeRing;
public class TestForgeRing {
public static void main(String[] args) {
ForgeRing<Integer> ring = new ForgeRing<>();
ring.insertAtEnd(10);
ring.insertAtBeginning(5);
ring.insertAtPosition(25, 3);
ring.printData();
ring.removeFirst();
ring.removeLast();
ring.removeAtPosition(2);
ring.removeBefore(25);
}
}import com.jangelmm.dataforge.list.ForgeChain;
public class TestForgeChain {
public static void main(String[] args) {
ForgeChain<Integer> chain = new ForgeChain<>();
chain.addFirst(10);
chain.addLast(20);
chain.addSortedUnique(15);
chain.traverse();
chain.removeFirst();
chain.removeLast();
chain.reverse();
System.out.println(chain.contains(15));
System.out.println(chain.indexOf(15));
}
}import com.jangelmm.dataforge.tree.ForgeBinaryTree;
public class TestForgeBinaryTree {
public static void main(String[] args) {
ForgeBinaryTree<String> tree = new ForgeBinaryTree<>();
tree.add("50");
tree.add("30");
tree.add("70");
tree.printTree();
tree.inOrderTraversal();
}
}import com.jangelmm.dataforge.tree.ForgeAVLTree;
public class TestForgeAVLTree {
public static void main(String[] args) {
ForgeAVLTree<String, String> avl = new ForgeAVLTree<>();
avl.insert("AA", "value9");
avl.insert("AB", "value15");
avl.printTree();
avl.preOrderTraversal();
avl.inOrderTraversal();
}
}Si quieres la versión con Maven puedes visitar: https://github.com/jangelmm/DataForge.git
Las contribuciones son bienvenidas. Por favor, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/mi-nueva-caracteristica). - Realiza tus cambios y haz commit (
git commit -am 'Añadir nueva característica'). - Haz push a tu rama (
git push origin feature/mi-nueva-caracteristica). - Abre un Pull Request.
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
¡Gracias por usar JDataForge! Si tienes alguna pregunta o encuentras algún problema, no dudes en abrir un issue en GitHub.