Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <fstream>
- #include <stdlib.h>
- using namespace std;
- template <class T>
- class nodo{
- public:
- T info;
- nodo<T>* next, *prev;
- nodo * nod(T a){
- info = a;
- nodo * next = NULL;
- nodo * prev = NULL;
- }
- void imprimir(){
- cout << "Mostrar "<< info <<" \n";
- }
- };
- template <class T>
- class lista : public nodo<T>{
- private:
- nodo<T> * inicio, * ultimo;
- public:
- nodo<T> * newnodo(T info){
- nodo<T> * n;
- n->nod(info);
- n->next = NULL;
- n->prev = NULL;
- return n;
- }
- void insertar(T info){
- nodo<T> * aux = newnodo(info);
- if(inicio == NULL){
- inicio = aux;
- ultimo = aux;
- }else{
- nodo<T> * actual = inicio;
- if(actual->next == NULL){
- actual->next = aux;
- aux->prev = actual;
- ultimo = aux;
- }else{
- while(actual->next->next != NULL){
- actual = actual->next;
- }
- actual->next->next = aux;
- aux->prev = actual->next;
- ultimo = aux;
- }
- }
- }
- void mostrart(){
- if(inicio == NULL){
- cout << "No hay nada que mostrar \n";
- }else{
- nodo<T> * actual = inicio;
- while(actual->next != NULL){
- actual->imprimir();
- //cout << "Mostrar "<< actual->info <<" \n";
- actual = actual->next;
- }
- cout << "Mostrar "<< actual->info <<" \n";
- }
- }
- void mostrart2(){
- if(ultimo == NULL){
- cout << "No hay nada que mostrar \n";
- }else{
- nodo<T> * actual = ultimo;
- while(actual->prev != NULL){
- actual->imprimir();
- //cout << "Mostrar "<< actual->info <<" \n";
- actual = actual->prev;
- }
- cout << "Mostrar "<< actual->info <<" \n";
- }
- }
- };
- template <class T>
- class cola : public lista<T>{
- void insertarultimo(T info){
- lista<T>::insertar(info);
- }
- public:
- void mostrart(){
- lista<T>::mostrart();
- }
- };
- lista<string> lis;
- cola<string> col;
- void caso1(){
- string cont;
- cout << "Inserte algo\n";
- cin >> cont;
- lis.insertar(cont);
- }
- void caso4(){
- string cont;
- cout << "Inserte algo\n";
- cin >> cont;
- col.insertar(cont);
- }
- int main(){
- int a = 1;
- while(a != 0){
- cout << "Inserte 1 para insertar, 2 para mostrar todo de primero a ultimo,\n 3 para mostrar todo de ultimo a primero, 4 para insertar en cola \n 5 paramostrartodoen la cola, 0 para salir \n";
- cin >> a;
- switch (a){
- case 1:
- caso1();
- break;
- case 2:
- lis.mostrart();
- break;
- case 3:
- lis.mostrart2();
- break;
- case 4:
- caso4();
- break;
- case 5:
- col.mostrart();
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement