Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de datos
2022
EJERCICIOS "ESTRUCTURAS DE DATOS EN JAVA"
Punto 8.1
package lista;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Alx
*/
public class Lista {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
List<String>nombre;
nombre=new ArrayList<>();
System.out.println("desea añadir algo");
nombre.add(in.nextLine());
if(nombre.size()<0){
System.out.println("lista esta vacia");
}else{
System.out.println("la lista no anda vacia");
}
}
Punto 8.2
}
public class Lista_doble {
private Nodo Inicio;
private Nodo fin;
public Lista_doble(){
Inicio=null;
fin=null;
}
public void insertarInicio(String dato){
if(Inicio==null){
Inicio=new Nodo(dato,null,null);
fin=Inicio;
}
else{
Nodo nuevo=new Nodo(dato,null,Inicio);
Inicio.setAnterior(nuevo);
Inicio=nuevo;
}
}
public void insertarFin(String dato){
if(Inicio==null){
fin=new Nodo(dato,null,null);
Inicio=fin;
}else{
Nodo nuevo=new Nodo(dato,null,Inicio);
fin.setAnterior(nuevo);
fin=nuevo;
}
}
public String ExtraerInicio(){
String dato=Inicio.getDato();
Inicio=Inicio.getSiguiente();
if(Inicio !=null){
Inicio.setAnterior(Inicio);
}else{
fin=null;
}
return dato;
}
public void MostrarRegresar(){
Nodo temp=fin;
while(temp !=null){
System.out.println(temp.getDato());
temp=temp.getAnterior();
}
}
public Boolean buscar(String dato){
Nodo temp=Inicio;
while(temp !=null){
if(temp.getDato().equals(temp)){
return true;
}
temp=temp.getSiguiente();
}
return false;
}
}
public class punto82 {
public static void main(String[] args) {
Lista_doble lb=new Lista_doble();
lb.insertarInicio("3");
lb.insertarFin("1");
lb.insertarFin("2");
lb.MostrarRegresar();
}
Punto 8.3
Clase Nodo:
//Declaración de atributos
private int dato;
private Nodo siguiente;
Clase Lista:
public Lista()
{
inicio=fin=null;
}
//Metodo para calcular el valor absoluto entre dos numeros ubicados en los nodos
public int calculo(int primer, int segundo)
{
int num = primer -segundo;
num =Math.abs(num);
return num;
}
Clase Principal:
import javax.swing.JOptionPane;
array.agregarInicio(17);
array.agregarInicio(43);
array.agregarInicio(20);
array.agregarFin(4);
array.agregarFin(11);
System.out.println("Lista inicial");
array.imprimir();
Punto 8.4
class node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class ListasEnlazadas:
def __init__(self):
self.head = None
class node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class AplicacionDeListasEnlazadas:
def __init__(self):
self.head = None
s = AplicacionDeListasEnlazadas()
s.add_at_front(-3)
s.add_at_end(7)
s.add_at_front(-8)
s.add_between(3, -4)
s.print_list()
8.5
lass CIDemo {
liMaster.last.next = liWorking.top;
dump ("New master list =", liMaster.top);
invert (liMaster);
dump ("Inverted new master list =", liMaster.top);
}
li.last = li.top;
li.last = li.last.next;
}
li.last.next = null;
}
while (p != null) {
r = q;
q = p;
p = p.next;
q.next = r;
}
li.top = q;
}
}
Punto 8.6
tLista Crear()
{
tLista l;
l = (tLista)malloc(sizeof(tipocelda));
if (l == NULL)
Error("Memoria insuficiente.");
l->siguiente = l->anterior = l;
return l;
}
return l->siguiente;
}
nuevo = (tPosicion)malloc(sizeof(tipocelda));
if (nuevo == NULL)
Error("Memoria insuficiente.");
nuevo->elemento = x;
nuevo->siguiente = p;
nuevo->anterior = p->anterior;
p->anterior->siguiente = nuevo;
p->anterior = nuevo;
}
if (p == l){
Error("Posicion fin(l)");
}
return p->elemento;
}
if (p == l->siguiente){
Error("Posicion primero(l)");
}
return p->anterior;
}
Punto 8.8
public class Nodo {
// Variable en la cual se va a guardar el valor.
private int valor;
// Variable para enlazar los nodos.
private Nodo siguiente;
/**
* Constructor que inicializamos el valor de las variables.
*/
public void Nodo(){
this.valor = 0;
this.siguiente = null;
}
System.out.println("\nElimina la lista");
listaCircular.eliminar();
Punto 8.10
#include<iostream>
#include<stdlib.h>
using namespace std;
struct Registro{
int cedula;
string nombre;
string apellido;
int edad;
char sexo;
Registro *Rpersona;
};
void menu();
void insertarLista(Registro *&,int c, string n, string a, int e, char s);
void mostrarLista(Registro *);
void buscarLista(Registro *,int c);
void eliminarNodo(Registro *&,int c);
void eliminarLista(Registro *&,int &);
int main(){
menu();
return 0;
}
void menu(){
int opcion,c,e;
string n,a;
char s;
do{
cout<<"\t.:::Proyecto UBV:::.\n";
cout<<"1. Ingresar un Registro a la lista\n";
cout<<"2. Mostrar los Registros de la lista\n";
cout<<"3. Buscar un Registro en la lista\n";
cout<<"4. Eliminar un Registro de la lista\n";
cout<<"5. Dejar vacia la lista\n";
cout<<"6. Salir\n";
cout<<"Opcion: ";
cin>>opcion;
switch(opcion){
case 1: cout<<"\nIngrese un Numero de Cedula: ";
cin>>c;
cout<<"\nIngrese el Nombre: ";
cin>>n;
cout<<"\nIngrese el Apellido: ";
cin>>a;
cout<<"\nIngrese la Edad: ";
cin>>e;
cout<<"\nIngrese el Sexo: ";
cin>>s;
insertarLista(lista,c,n,a,e,s);
cout<<"\n";
system("pause");
break;
case 2: mostrarLista(lista);
cout<<"\n";
system("pause");
break;
case 3: cout<<"\nIngrese el Numero de Cedula a Buscar en el
Registro: ";
cin>>c;
buscarLista(lista,c);
cout<<"\n";
system("pause");
break;
case 4: cout<<"\nIngrese el Numero de Cedula a Eliminar del
Registro: ";
cin>>c;
eliminarNodo(lista,c);
cout<<"\n";
system("pause");
break;
case 5:
while(lista != NULL){
eliminarLista(lista,c);
cout<<c <<" -> ";
}
cout<<"\n";
system("pause");
break;
}
system("cls");
}while(opcion != 6);
}
nuevo_registro->cedula = c;
nuevo_registro->nombre = n;
nuevo_registro->apellido = a;
nuevo_registro->edad = e;
nuevo_registro->sexo = s;
Registro *aux1 = lista;
Registro *aux2;
while((aux1 != NULL) && (aux1->cedula < c), (aux1->nombre < n), (aux1-
>apellido < a), (aux1->edad < e), (aux1->sexo < s)){
aux2 = aux1;
aux1 = aux1->Rpersona;
}
if(lista == aux1){
lista = nuevo_registro;
}
else{
aux2->Rpersona = nuevo_registro;
}
nuevo_registro->Rpersona = aux1;
while(actual != NULL){
cout<<actual->cedula<<" -> ";
cout<<actual->nombre<<" -> ";
cout<<actual->apellido<<" -> ";
cout<<actual->edad<<" -> ";
cout<<actual->sexo<<" -> ";
actual = actual->Rpersona;
}
}
if(band == true){
cout<<"Persona "<<n<<" SI a sido encontrado en lista\n";
}
else{
cout<<"Persona "<<n<<" NO a sido encontrado en la lista\n";
}
}
if(lista != NULL){
Registro *aux_borrar;
Registro *anterior = NULL;
aux_borrar = lista;
if(aux_borrar == NULL){
cout<<"La persona no ha sido encontrado";
}
else {
anterior->Rpersona = aux_borrar->Rpersona;
delete aux_borrar;
}
}
}
void eliminarLista(Registro *&lista,int &c, string &n, string &a,int &e, char &s){
Registro *aux = lista;
c = aux->cedula;
n = aux->nombre;
a = aux->apellido;
e = aux->edad;
s = aux->sexo;
lista = aux->Rpersona;
delete aux;
}