Fandom

Scratchpad

PLE:Unidad7Ejercicio09

215,988pages 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:       Ejercicio09
Descipcion:     Lista enlazada. Inserta ordenadamente una lista de palabras
                contenidas en un fichero de texto sin repeticiones.
                El resultado final se almacena en formato HTML.
*/

#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<conio.h>

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

nodo *localiza(nodo *r, char *p);

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

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

        // Leemos la primera palabra
        fe >> pal;
        while(!fe.eof())
        {
                // creamos el nodo
                pos = raiz;
                pos = localiza(pos, pal);
                if( pos == NULL)
                {
                        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";
        getch();
}

nodo *localiza(nodo *r, char *p)
{
        while(r != NULL && strcmp(r->palabra, p)!=0)
                r = r->ps;
        return r;
}

Also on Fandom

Random wikia