Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jangelmm/jdataforge
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.
https://github.com/jangelmm/jdataforge
jar java library
Last synced: about 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/jangelmm/jdataforge
- Owner: jangelmm
- License: other
- Created: 2024-08-22T03:11:58.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-23T00:34:37.000Z (5 months ago)
- Last Synced: 2024-08-23T04:38:44.391Z (5 months ago)
- Topics: jar, java, library
- Language: Java
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JDataForge
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.
## Tabla de Contenidos
- [Características](#características)
- [Instalación](#instalación)
- [Uso](#uso)
- [ForgeStack](#forgestack)
- [ForgeQueue](#forgequeue)
- [ForgeSequence](#forgesequence)
- [ForgeDual](#forgedual)
- [ForgeRing](#forgering)
- [ForgeChain](#forgechain)
- [ForgeBinaryTree](#forgebinarytree)
- [ForgeAVLTree](#forgeavltree)
- [Contribuciones](#contribuciones)
- [Licencia](#licencia)## Características
- **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.## Instalación
### Obtener `.jar`
Puedes descargar el archivo `JDataForge.jar`y agregarlo directamente en tus proyectos.Si genera error al usarlo, te recomiendo compilarlo.
### Compilar
1. Clona el repositorio:
```bash
git clone https://github.com/tu_usuario/JDataForge.git
```2. Compila el proyecto usando Ant:
```bash
cd JDataForge
ant build
```3. Encuentra el archivo JAR en el directorio `dist`:
```bash
dist/JDataForge.jar
```4. Agrega el archivo JAR a tu proyecto Java.
## Uso
### `ForgeStack`
```java
import com.jangelmm.dataforge.basics.ForgeStack;public class TestForgeStack {
public static void main(String[] args) {
ForgeStack 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());
}
}
```### `ForgeQueue`
```java
import com.jangelmm.dataforge.basics.ForgeQueue;public class TestForgeQueue {
public static void main(String[] args) {
ForgeQueue 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());
}
}
```### `ForgeSequence`
```java
import com.jangelmm.dataforge.list.ForgeSequence;public class TestForgeSequence {
public static void main(String[] args) {
ForgeSequence 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);
}
}
```### `ForgeDual`
```java
import com.jangelmm.dataforge.list.ForgeDual;public class TestForgeDual {
public static void main(String[] args) {
ForgeDual list = new ForgeDual<>();list.insertAtStart(3);
list.insertAtEnd(4);list.printListAscending();
list.removeHead();
list.removeTail();
list.removeElement(2);
}
}
```### `ForgeRing`
```java
import com.jangelmm.dataforge.list.ForgeRing;public class TestForgeRing {
public static void main(String[] args) {
ForgeRing 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);
}
}
```### `ForgeChain`
```java
import com.jangelmm.dataforge.list.ForgeChain;public class TestForgeChain {
public static void main(String[] args) {
ForgeChain 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));
}
}
```### `ForgeBinaryTree`
```java
import com.jangelmm.dataforge.tree.ForgeBinaryTree;public class TestForgeBinaryTree {
public static void main(String[] args) {
ForgeBinaryTree tree = new ForgeBinaryTree<>();tree.add("50");
tree.add("30");
tree.add("70");tree.printTree();
tree.inOrderTraversal();
}
}
```### `ForgeAVLTree`
```java
import com.jangelmm.dataforge.tree.ForgeAVLTree;public class TestForgeAVLTree {
public static void main(String[] args) {
ForgeAVLTree avl = new ForgeAVLTree<>();avl.insert("AA", "value9");
avl.insert("AB", "value15");avl.printTree();
avl.preOrderTraversal();
avl.inOrderTraversal();
}
}
```## Otros enlaces
Si quieres la versión con Maven puedes visitar: https://github.com/jangelmm/DataForge.git
## Contribuciones
Las contribuciones son bienvenidas. Por favor, sigue estos pasos:
1. Haz un fork del repositorio.
2. Crea una nueva rama (`git checkout -b feature/mi-nueva-caracteristica`).
3. Realiza tus cambios y haz commit (`git commit -am 'Añadir nueva característica'`).
4. Haz push a tu rama (`git push origin feature/mi-nueva-caracteristica`).
5. Abre un Pull Request.## Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo [LICENSE](LICENCE) 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.