Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
58d7dff
Delete unused packages import
SudoerJteheran Oct 25, 2023
6a5d83b
Complete binary tree node
SudoerJteheran Oct 25, 2023
c27b7cf
Start implementation of BinTree
SudoerJteheran Oct 25, 2023
68e2da5
Implement parent method, for get parent
SudoerJteheran Oct 30, 2023
d4420b8
Add depth and height methods
SudoerJteheran Oct 30, 2023
5dc99de
Changed name of setRight method
SudoerJteheran Oct 30, 2023
f5d4ec1
Add methods for settings root and nodes
SudoerJteheran Oct 30, 2023
2b37701
Add remove method, waiting for testing
SudoerJteheran Oct 30, 2023
81a0726
Update README.md
SudoerJteheran Oct 30, 2023
90f262b
Implement traversal techniques, issues w/ parent method
SudoerJteheran Oct 30, 2023
840b407
Doing some testing
SudoerJteheran Oct 30, 2023
a9f671d
Merge branch 'trees-implementation' of https://github.com/JuanEsteban…
SudoerJteheran Oct 30, 2023
3d1dc1b
BinarySearchTree and BSTEntry almost done
JuanEstebanCC Nov 6, 2023
0df6759
Fixes in BSTree
JuanEstebanCC Nov 6, 2023
3fee258
Corrected Remove and addEntry
SudoerJteheran Nov 6, 2023
a3e6d77
Added minNode for search the minimun key
SudoerJteheran Nov 10, 2023
a65f8cb
Move unused classes to Clases Varias dir
SudoerJteheran Nov 10, 2023
b7f29f7
Add inOrder traversal tecnique for BST
SudoerJteheran Nov 10, 2023
8949a0c
Create user class, very simple
SudoerJteheran Nov 10, 2023
db0f7f6
Add method for digits sum of the ID
SudoerJteheran Nov 10, 2023
2ada8c4
Menu almost done
JuanEstebanCC Nov 13, 2023
c0ac06d
Fixes on menu
JuanEstebanCC Nov 15, 2023
fa5dd5c
almost finished, remove method stills not working
JuanEstebanCC Nov 15, 2023
55ccc47
Edit methods and menu, waiting test on removing nodes
SudoerJteheran Nov 16, 2023
d2eb9fd
Show the tree done
JuanEstebanCC Nov 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions .idea/uiDesigner.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 1 addition & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DataStructuresUNAL

## Práctica 2
## Práctica 3

### Integrantes:

Expand All @@ -9,46 +9,3 @@


### Instrucciones:

1. Los empleados de la empresa se encuentran almacenados en un archivo de texto denominado
“Empleados.txt”; en este archivo, se almacena la información personal (nombre, cedula, fecha de
nacimiento, ciudad de nacimiento) y de contacto (teléfono, correo electrónico y dirección (calle,
nomenclatura, barrio, ciudad, urbanización, número de apartamento)). Al iniciar el sistema debe cargar
los empleados de la empresa desde el archivo de texto (ver archivo empleados.txt de ejemplo).
2. Para acceder al sistema, cada empleado tiene una contraseña, conformada por número y letras. Las
contraseñas de cada usuario se almacenan en un archivo de texto “Password.txt”. Este archivo incluye en
cada línea: la cedula de ciudadanía de un usuario, su contraseña, y una descripción si el usuario es
“empleado” o “administrador”. Para acceder al sistema, el usuario debe digitar su número de
identificación y contraseña, y el sistema debe verificar con la información de este archivo si los datos son
correctos (ver archivo Password.txt de ejemplo).
3. El “administrador” del sistema tiene la posibilidad de realizar las mismas funcionalidades que los
empleados, pero además puede, registrar nuevos usuarios al sistema, cambiar contraseñas, y eliminar
usuarios. Cuando se realicen este tipo de cambios en la información de los usuarios, se debe actualizar el
archivo Empleados.txt y Password.txt, manteniendo la consistencia entre ambos.
4. El “empleado” puede revisar su bandeja de entrada, los mensajes leídos, proyectar mensaje que se
mantienen en borradores, y enviar mensajes a usuarios del sistema.
5. La bandeja de entrada de cada empleado mantiene la colección de mensajes electrónicos que aún no
se han leído. Al consultar la bandeja de entrada por consola, esta debe presentar la fecha de recepción,
el titulo del mensaje y el nombre de la persona que lo envió. Adicionalmente, debe permitir seleccionar
cual mensaje se desea leer (tip: se recomienda implementar la bandeja de entrada como una lista
doble).
5. Una vez leído un mensaje electrónico se elimina de la “bandeja de entrada” y pasa a la carpeta de
mensajes leídos. El empleado puede consultar los mensajes leídos de forma secuencial, iniciando desde
el mas antiguo (tip: se recomienda implementar los mensajes leídos como una cola).
6. Cuando un usuario quiere redactar un nuevo mensaje, por consola, se debe pedir:
• Cedula del usuario al que se envía el mensaje
• Título del mensaje
• Mensaje
Además de la información que redacta el usuario, cada mensaje de forma automática se le asigna la
fecha y hora de envió. El empleado tiene las opciones de guardar como borrador, descartar o enviar el
mensaje.
7. Cuando un empleado decide almacenar como borrador un mensaje de texto, el sistema almacena el
mensaje en una colección, donde el empleado solo puede acceder al último borrador (más reciente).
Para acceder a otro mensaje, el empleado debe descartar el mensaje actual o enviarlo (tip: se
recomienda que los borradores se almacenen en una pila).
8. Cuando un empleado decide descartar el mensaje, este se elimina del sistema.
9. Cuando un empleado envía un mensaje, el sistema lo agrega a la bandeja de entrada del destinatario
correspondiente.
10. Los mensajes en la bandeja de entrada, mensajes leídos, y borradores de cada usuario se almacena
en archivos de texto, denominados por el número de cedula del empleado, seguido por las letras BA
para la bandeja de entrada, ML para los mensajes leídos y B para los borradores.
53 changes: 53 additions & 0 deletions demo/src/main/java/Tree/BSTEntry.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package Tree;

public class BSTEntry {
// Atributos de un nodo de un arbol binario de busqueda
private Object data;
private int k;
private BSTEntry left;
private BSTEntry right;


// Constructores

public BSTEntry(Object e, int k) {
this.data = e;
this.k = k;
}

// Getters and setters
public Object getData() {
return data;
}

public int getKey() {
return k;
}
public BSTEntry getLeft() {
return left;
}

public BSTEntry getRight() {
return right;
}
public void setData(Object data) {
this.data = data;
}

public void setKey(int k) {
this.k = k;
}

public void setLeft(BSTEntry left) {
this.left = left;
}

public void setRight(BSTEntry right) {
this.right = right;
}

@Override
public String toString() {
return "{ Key= " + k + " , Data= " + data +" } ";
}
}
47 changes: 47 additions & 0 deletions demo/src/main/java/Tree/BinaryNode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package Tree;


public class BinaryNode {
//Implementación de un nodo para árbol binario
private Object data;
private BinaryNode left;
private BinaryNode right;

//Constructors
public BinaryNode() {
this.data = null;

}

public BinaryNode(Object data) {
this.data = data;
this.left = null;
this.right = null;
}

//Getters de la clase
public Object getData() {
return data;
}

public BinaryNode getLeft() {
return left;
}

public BinaryNode getRight() {
return right;
}

//Setters de la clase
public void setData(Object data) {
this.data = data;
}

public void setLeft(BinaryNode left) {
this.left = left;
}

public void setRight(BinaryNode right) {
this.right = right;
}
}
Loading