Fandom

Scratchpad

PLE:Unidad7Ejercicio08

216,200pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

/*
programa:       Ejercicio08
Descipcion:     Lista enlazada. Inserta ordenadamente una
                lista de palabras contenida en un fichero de texto
                y las almacena en formato HTML.
*/

#include<iostream>
#include<fstream>

using namespace std;

struct nodo{
        char palabra[30];
        nodo *ps;
};

int main()
{
    nodo *raiz=NULL,*nuevo=NULL, *anterior;
    ifstream fe;
    ofstream fs;
    char pal[30];

    // Abrimos el fichero de entrada
    fe.open("ejemplo.txt");
    fs.open("ejemplo.html");

    if(fe.is_open() && fs.is_open())
    {
        // Leemos la primera palabra
        fe >> pal;
        while(!fe.eof())
        {
            // Creamos el nuevo nodo
            nuevo=new nodo;
            strcpy(nuevo->palabra,pal);
            // Buscamos el nodo anterior
            if(raiz==NULL || strcmp(raiz->palabra,pal) >= 0){
                    nuevo->ps = raiz;
                    raiz = nuevo;
            }else {
                    anterior = raiz;
                    while(anterior->ps != NULL && strcmp(anterior->ps->palabra,pal) < 0){
                            anterior = anterior->ps;
                    }
                    nuevo->ps = anterior->ps;
                    anterior->ps = nuevo;
            }
            // Leemos la siguiente palabra
            fe >> pal;
        }
        // Volcamos la cabecera del fichero HTML
        fs << "<html>\n";
        fs << "<head></head>\n";
        fs << "<body>\n";
        fs << "<h4>Lista de palabras ordenadas</h4>\n";
        fs << "<table border='1' width='80%'>\n";
        // imprimir lista
        nuevo=raiz;
        while(nuevo!=NULL)
        {
            // Muestra datos del nodo
            cout << nuevo->palabra << "\t";
            // Vocamos sobre el fichero HTML las filas
            fs << "<tr><td>" << nuevo->palabra << "</td></tr>\n";
            // Saltamos al siguiente
            nuevo = nuevo->ps;
        }
        // Volcamos el pie del fichero HTML
        fs << "</table>\n";
        fs << "</body>\n";
        fs << "</html>\n";
    } else {
        cout << "ERROR de apertura de ficheros" << endl;
    }
    cin.get();
}

Also on Fandom

Random wikia