Fandom

Scratchpad

PLE:Unidad7Ejercicio09

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

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