Fandom

Scratchpad

PLE:Unidad7Ejercicio08

219,296pages on
this wiki
Add New Page
Discuss this page0 Share
/*
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();
}

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.

Also on Fandom

Random wikia