La profe dijo que ya esta bien, igual gracias
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
typedef char tcad[16];
typedef struct tnodo *pnodo;
typedef struct tnodo{
tcad dato;
pnodo sig;
};
void inicia(pnodo &lista);
void crear(pnodo &nuevo);
void agregar_final(pnodo &lista, pnodo nuevo);
pnodo quitar_inicio(pnodo &lista);
void modificar_lista(pnodo &lista);
void mostrar(pnodo lista);
int main()
{
pnodo milista, nodo;
int opcion;
inicia(milista);
do{
system("cls");
cout << "1. Iniciar lista" << endl;
cout << "2. Agregar elementos a la lista" << endl;
cout << "3. Modificar lista" << endl;
cout << "4. Mostrar lista" << endl;
cout << "5. Salir" << endl;
cin >> opcion;
switch(opcion){
case 1: inicia(milista); break;
case 2: crear(nodo); if(nodo!=NULL){agregar_final(milista,nodo);}; break;
case 3: modificar_lista(milista); break;
case 4: cout << "***LISTA***" << endl; mostrar(milista); break;
case 5: cout << "FIN DEL PROGRAMA" << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
}while(opcion!=5);
}
void inicia(pnodo &lista)
{
lista=NULL;
}
void crear(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout << "Ingrese dato: "; cin >> nuevo->dato;
nuevo->sig=NULL;
}
else{
cout << "MEMORIA INSUFICIENTE" << endl;
}
}
void agregar_final(pnodo &lista, pnodo nuevo)
{
pnodo i;
if(lista==NULL){
lista=nuevo;
}
else{
for(i=lista;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
}
pnodo quitar_inicio(pnodo &lista)
{
pnodo borrado;
if(lista==NULL){
borrado=NULL;
}
else{
borrado=lista;
lista=lista->sig;
borrado->sig=NULL;
}
return borrado;
}
void modificar_lista(pnodo &lista)
{
pnodo i;
tcad buscado;
cout << "Ingrese dia de la semana: "; cin >> buscado;
for(i=lista;i!=NULL;i=i->sig){
if(strcmp(i->dato,buscado)!=0){
agregar_final(lista,i);
delete(quitar_inicio(lista));
}
else{
break;
}
}
}
void mostrar(pnodo lista)
{
pnodo i;
if(lista!=NULL){
for(i=lista;i!=NULL;i=i->sig){
cout << "Nodo: " << i->dato << endl;
}
cout << endl;
}
else{
cout << "LISTA VACIA" << endl;
}
}
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
typedef struct tlista{
pnodo inicio;
};
void inicia(tlista &lista);
void crear(pnodo &nuevo);
void agregar_final(tlista &lista, pnodo nuevo);
int sumar_nodos(pnodo inicio);
void mostrar(tlista lista);
int main()
{
tlista milista;
pnodo nodo;
int opcion, suma=0;
inicia(milista);
do{
system("cls");
cout << "1. Iniciar lista" << endl;
cout << "2. Agregar elementos a la lista" << endl;
cout << "3. Sumar elementos" << endl;
cout << "4. Mostrar lista" << endl;
cout << "5. Salir" << endl;
cin >> opcion;
switch(opcion){
case 1: inicia(milista); break;
case 2: crear(nodo); if(nodo!=NULL){agregar_final(milista,nodo);}; break;
case 3: suma=sumar_nodos(milista.inicio); cout << "SUMA: " << suma << endl; break;
case 4: cout << "***LISTA***" << endl; mostrar(milista); break;
case 5: cout << "FIN DEL PROGRAMA" << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
}while(opcion!=5);
}
void inicia(tlista &lista)
{
lista.inicio=NULL;
}
void crear(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout << "Ingrese valor: "; cin >> nuevo->dato;
nuevo->sig=NULL;
}
else{
cout << "MEMORIA INSUFICIENTE" << endl;
}
}
void agregar_final(tlista &lista, pnodo nuevo)
{
pnodo i;
if(lista.inicio==NULL){
lista.inicio=nuevo;
}
else{
for(i=lista.inicio;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
}
int sumar_nodos(pnodo inicio)
{
if(inicio==NULL){
return 0;
}
else{
return inicio->dato+sumar_nodos(inicio->sig);
}
}
void mostrar(tlista lista)
{
pnodo i;
if(lista.inicio!=NULL){
for(i=lista.inicio;i!=NULL;i=i->sig){
cout << "Nodo: " << i->dato << endl;
}
cout << endl;
}
else{
cout << "LISTA VACIA" << endl;
}
}
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
typedef struct tlista{
pnodo inicio;
};
int sumar(tlista lista)
{
pnodo i;
if(lista.inicio==NULL){
return 0;
}
else{
return lista.inicio->dato+sumar(i=i->sig);
}
}
void ordenar_lista(pnodo &lista)
{
pnodo i, j, min;
int aux;
for(i=lista;i->sig!=NULL;i=i->sig){
min=i;
for(j=i->sig;j!=NULL;j=j->sig){//Esto no entiendo
if(j->dato<min->dato){
min=j;
}
}
if(min!=i){
aux=min->dato;
min->dato=i->dato;
i->dato=aux;
}
}
}
void ordenar_lista(pnodo &lista)
{
pnodo i, j, min;
int aux;
for(i=lista;i->sig!=NULL;i=i->sig){
min=i;
for(j=i->sig;j!=NULL;j=j->sig){//Esto no entiendo
if(j->dato<min->dato){
min=j;
}
}
if(min!=i){
aux=i->dato;
i->dato=min->dato;
min->dato=aux;
}
}
}
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
void inicia(pnodo &lista);
void crear(pnodo &nuevo);
void agregar_final(pnodo &lista, pnodo nuevo);
void ordenar_lista(pnodo &lista);
void mostrar(pnodo lista);
int main()
{
pnodo milista, nuevo;
int opcion;
inicia(milista);
do{
system("cls");
cout << "1. Iniciar lista" << endl;
cout << "2. Agregar elemento" << endl;
cout << "3. Ordenar lista" << endl;
cout << "4. Mostrar lista" << endl;
cout << "5. Salir" << endl;
cin >> opcion;
switch(opcion){
case 1: inicia(milista); break;
case 2: crear(nuevo); if(nuevo!=NULL){agregar_final(milista,nuevo);}; break;
case 3: ordenar_lista(milista); break;
case 4: cout << "*** LISTA ***" << endl; mostrar(milista); break;
case 5: cout << "FIN DEL PROGRAMA" << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
}while(opcion!=5);
}
void inicia(pnodo &lista)
{
lista=NULL;
}
void crear(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout << "Ingrese valor: "; cin >> nuevo->dato;
nuevo->sig=NULL;
}
else{
cout << "MEMORIA INSUFICIENTE" << endl;
}
}
void agregar_final(pnodo &lista, pnodo nuevo)
{
pnodo i;
if(lista==NULL){
lista=nuevo;
}
else{
for(i=lista;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
}
void ordenar_lista(pnodo &lista)
{
pnodo i, j, min;
int aux;
for(i=lista;i->sig!=NULL;i=i->sig){
min=i;
for(j=lista;j->sig!=NULL;j=j->sig){
j=i->sig;
if(j->dato<i->dato){
min->dato=j->dato;
min->sig=j->sig;
}
}
aux=i->dato;
i->dato=min->dato;
min->dato=aux;
}
}
void mostrar(pnodo lista)
{
pnodo i;
if(lista!=NULL){
for(i=lista;i!=NULL;i=i->sig){
cout << "Nodo: " << i->dato << endl;
}
cout << endl;
}
else{
cout << "LISTA VACIA" << endl;
}
}
void ordenar_lista(pnodo &lista)
{
pnodo i, j, min;
int aux;
for(i=lista;i->sig!=NULL;i=i->sig){
min=i;
for(j=i->sig;j->sig!=NULL;j=j->sig){
if(min->dato>j->dato){
min=j;
}
}
if(min!=i){
aux=i->dato;
i->dato=j->dato;
j->dato=aux;
}
}
}
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
typedef struct tlista{
pnodo inicio;
int contador;
};
void inicia(tlista &lista);
void crear(pnodo &nuevo);
void agregar_inicio(tlista &lista, pnodo nuevo);
void agregar_final(tlista &lista, pnodo nuevo);
void agregar_orden(tlista &lista, pnodo nuevo);
pnodo quitar_inicio(tlista &lista);
pnodo quitar_final(tlista &lista);
pnodo quitar_nodo(tlista &lista, int valor);
bool buscar_nodo(tlista lista,int valor);
void mostrar(tlista lista);
int main()
{
tlista milista;
pnodo nuevonodo, eliminado;
int opcion, num;
inicia(milista);
do{
system("cls");
cout << "1. Iniciar lista" << endl;
cout << "2. Agregar al inicio" << endl;
cout << "3. Agregar al final" << endl;
cout << "4. Agregar en orden" << endl;
cout << "5. Quitar al inicio" << endl;
cout << "6. Quitar al final" << endl;
cout << "7. Quitar valor" << endl;
cout << "8. Buscar valor" << endl;
cout << "9. Mostrar lista" << endl;
cout << "10. Salir" << endl;
cin >> opcion;
switch(opcion){
case 1: inicia(milista); break;
case 2: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
case 3: crear(nuevonodo); if(nuevonodo!=NULL){agregar_final(milista,nuevonodo);}; break;
case 4: crear(nuevonodo); if(nuevonodo!=NULL){agregar_orden(milista,nuevonodo);}; break;
case 5: eliminado=quitar_inicio(milista);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 6: eliminado=quitar_final(milista);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 7: cout << "Igrese valor a eliminar: "; cin >> num; eliminado=quitar_nodo(milista,num);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl; delete(eliminado);}
else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 8: cout << "Ingrese valor buscado: "; cin >> num;
if(buscar_nodo(milista,num)==true){cout << "VALOR ENCONTRADO" << endl;}
else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 9: cout << "*** LISTA ***" << endl; mostrar(milista); break;
case 10: cout << "FIN DEL PROGRAMA" << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
}while(opcion!=10);
}
void inicia(tlista &lista)
{
lista.inicio=NULL;
lista.contador=0;
}
void crear(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout << "Ingrese valor: "; cin >> nuevo->dato;
nuevo->sig=NULL;
}
else{
cout << "MEMORIA INSUFICIENTE" << endl;
}
}
void agregar_inicio(tlista &lista, pnodo nuevo)
{
if (lista.inicio==NULL){
lista.inicio=nuevo;
}
else{
nuevo->sig=lista.inicio;
lista.inicio=nuevo;
}
lista.contador++;
}
void agregar_final(tlista &lista, pnodo nuevo)
{
pnodo i;
if(lista.inicio==NULL){
lista.inicio=nuevo;
}
else{
for(i=lista.inicio;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
lista.contador++;
}
void agregar_orden(tlista &lista, pnodo nuevo)
{
pnodo i;
if(lista.inicio==NULL){
lista.inicio=nuevo;
}
else{
if(nuevo->dato<lista.inicio->dato){
nuevo->sig=lista.inicio;
lista.inicio=nuevo;
}
else{
for(i=lista.inicio;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
nuevo->sig=i->sig;
i->sig=nuevo;
}
}
lista.contador++;
}
pnodo quitar_inicio(tlista &lista)
{
pnodo borrado;
if(lista.inicio==NULL){
borrado=NULL;
}
else{
borrado=lista.inicio;
lista.inicio=lista.inicio->sig;
borrado->sig=NULL;
}
lista.contador--;
return borrado;
}
pnodo quitar_final(tlista &lista)
{
pnodo borrado, i;
if(lista.inicio==NULL){
borrado=NULL;
}
else{
if(lista.inicio->sig==NULL){
borrado=lista.inicio;
lista.inicio=NULL;
}
else{
for(i=lista.inicio;(i->sig)->sig!=NULL;i=i->sig);
borrado=i->sig;
i->sig=NULL;
}
}
lista.contador--;
return borrado;
}
pnodo quitar_nodo(tlista &lista, int valor)
{
pnodo borrado, i;
if(lista.inicio==NULL){
borrado=NULL;
}
else{
if(lista.inicio->dato==valor){
borrado=lista.inicio;
lista.inicio=borrado->sig;
borrado->sig=NULL;
}
else{
for(i=lista.inicio;i->sig!=NULL && valor!=(i->sig)->dato;i=i->sig);
if(i->sig!=NULL){
borrado=i->sig;
i->sig=borrado->sig;
borrado->sig=NULL;
}
else{
borrado=NULL;
}
}
lista.contador--;
}
return borrado;
}
bool buscar_nodo(tlista lista,int valor)
{
pnodo i;
bool encontrado=false;
if(lista.inicio!=NULL){
for(i=lista.inicio;i!=NULL && encontrado==false;i=i->sig){
if(i->dato==valor){
encontrado=true;
}
}
}
return encontrado;
}
void mostrar(tlista lista)
{
pnodo i;
if(lista.inicio!=NULL){
for(i=lista.inicio;i!=NULL;i=i->sig){
cout << "Nodo: " << i->dato << endl;
}
cout << endl;
cout << "Cantidad de elementos: " << lista.contador << endl;
}
else{
cout << "LISTA VACIA" << endl;
}
}
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
};
void inicia(pnodo &lista);
void crear(pnodo &nuevo);
void agregar_inicio(pnodo &lista, pnodo nuevo);
void agregar_final(pnodo &lista, pnodo nuevo);
void agregar_orden(pnodo &lista, pnodo nuevo);
pnodo quitar_inicio(pnodo &lista);
pnodo quitar_final(pnodo &lista);
pnodo quitar_nodo(pnodo &lista, int valor);
bool buscar_nodo(pnodo lista,int valor);
void mostrar(pnodo lista);
int main()
{
pnodo milista, nuevonodo, eliminado;
int opcion, num;
inicia(milista);
do{
system("cls");
cout << "1. Iniciar lista" << endl;
cout << "2. Agregar al inicio" << endl;
cout << "3. Agregar al final" << endl;
cout << "4. Agregar en orden" << endl;
cout << "5. Quitar al inicio" << endl;
cout << "6. Quitar al final" << endl;
cout << "7. Quitar valor" << endl;
cout << "8. Buscar valor" << endl;
cout << "9. Mostrar lista" << endl;
cout << "10. Salir" << endl;
cin >> opcion;
switch(opcion){
case 1: inicia(milista); break;
case 2: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
case 3: crear(nuevonodo); if(nuevonodo!=NULL){agregar_inicio(milista,nuevonodo);}; break;
case 4: crear(nuevonodo); if(nuevonodo!=NULL){agregar_orden(milista,nuevonodo);}; break;
case 5: eliminado=quitar_inicio(milista);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 6: eliminado=quitar_final(milista);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl;delete(eliminado);}
else{cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 7: cout << "Igrese valor a eliminar: "; cin >> num; eliminado=quitar_nodo(milista,num);
if(eliminado!=NULL){cout << "Eliminado: " << eliminado->dato << endl; delete(eliminado);}
else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 8: cout << "Ingrese valor buscado: "; cin >> num;
if(buscar_nodo(milista,num)==true){cout << "VALOR ENCONTRADO" << endl;}
else{ cout << "LISTA VACIA O NO EXISTE VALOR" << endl;}; break;
case 9: cout << "*** LISTA ***" << endl; mostrar(milista); break;
case 10: cout << "FIN DEL PROGRAMA" << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
}while(opcion!=10);
}
void inicia(pnodo &lista)
{
lista=NULL;
}
void crear(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout << "Ingrese valor: "; cin >> nuevo->dato;
nuevo->sig=NULL;
}
else{
cout << "MEMORIA INSUFICIENTE" << endl;
}
}
void agregar_inicio(pnodo &lista, pnodo nuevo)
{
nuevo->sig=lista;
lista=nuevo;
}
void agregar_final(pnodo &lista, pnodo nuevo)
{
pnodo i;
if(lista==NULL){
lista=nuevo;
}
else{
for(i=lista;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
}
void agregar_orden(pnodo &lista, pnodo nuevo)
{
pnodo i;
if(lista==NULL){
lista=nuevo;
}
else{
if(nuevo->dato<lista->dato){
nuevo->sig=lista;
lista=nuevo;
}
else{
for(i=lista;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
nuevo->sig=i->sig;
i->sig=nuevo;
}
}
}
pnodo quitar_inicio(pnodo &lista)
{
pnodo borrado;
if(lista==NULL){
borrado=NULL;
}
else{
borrado=lista;
lista=lista->sig;
borrado->sig=NULL;
}
return borrado;
}
pnodo quitar_final(pnodo &lista)
{
pnodo borrado, i;
if(lista==NULL){
borrado=NULL;
}
else{
if(lista->sig==NULL){
borrado=lista;
lista=NULL;
}
else{
for(i=lista;(i->sig)->sig!=NULL;i=i->sig);
borrado=i->sig;
i->sig=NULL;
}
}
return borrado;
}
pnodo quitar_nodo(pnodo &lista, int valor)
{
pnodo borrado, i;
if(lista==NULL){
borrado=NULL;
}
else{
if(lista->dato==valor){
borrado=lista;
lista=borrado->sig;
borrado->sig=NULL;
}
else{
for(i=lista;i->sig!=NULL && valor!=(i->sig)->dato;i=i->sig);
if(i->sig!=NULL){
borrado=i->sig;
i->sig=borrado->sig;
borrado->sig=NULL;
}
else{
borrado=NULL;
}
}
}
return borrado;
}
bool buscar_nodo(pnodo lista,int valor)
{
pnodo i;
bool encontrado=false;
if(lista!=NULL){
for(i=lista;i!=NULL && encontrado==false;i=i->sig){
if(i->dato==valor){
encontrado=true;
}
}
}
return encontrado;
}
void mostrar(pnodo lista)
{
pnodo i;
if(lista!=NULL){
for(i=lista;i!=NULL;i=i->sig){
cout << "Nodo: " << i->dato << endl;
}
cout << endl;
}
else{
cout << "LISTA VACIA" << endl;
}
}
#include <iostream>
using namespace std;
int main()
{
char input=0;
cout << "Presione d para ejecutar ciclo" << endl;
while(1){
cin >> input;
if(input=='d'){
ejecutar ciclo();
}
else{
ejecutar_otras_acciones();
}
}
system("pause");
return 0;
}