elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  leer un documento HTML,cada etiqueta debe guardarse en un nodo de un árbol
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: leer un documento HTML,cada etiqueta debe guardarse en un nodo de un árbol  (Leído 1,713 veces)
mcMario

Desconectado Desconectado

Mensajes: 1


Ver Perfil
leer un documento HTML,cada etiqueta debe guardarse en un nodo de un árbol
« en: 12 Diciembre 2016, 02:40 am »

Me dejaron un trabajo que me parece un tanto complicado. Necesito conocimiento en varias cosas por lo que es algo complejo. El programa debe de leer un documento HTML. Después cada etiqueta del HTML debe guardarse en un nodo de un árbol, cada hijo del árbol debe ser una etiqueta inferior del HTML. De momento he logrado solamente leer una etiqueta, al momento de intentar guardar en un nodo me marca "Violación de segmento" (Como referencia uso ubuntu). Espero haberme explicado y espero que me responda alguien. Dejare la parte de código que tengo bien.

Código
  1. #include "arbol.h"
  2.  
  3. void main(){
  4.  
  5. FILE* archivo = fopen("arbol.html","r");
  6. int c, i;
  7. //char c;
  8. char * buffer = NULL;
  9. Arbol arbol;
  10. arbol = arbol_crearArbol();
  11. Nodo n;
  12.  
  13. c = fgetc(archivo);
  14.  
  15. if(c == '<'){
  16. c = fgetc(archivo);
  17. buffer = (char*)realloc(NULL, sizeof(char));
  18.    i = 0;
  19.    while( c != '>') {
  20.       buffer[i] = c;
  21.       i++;
  22.       buffer = (char*)realloc(buffer, (i+1)*sizeof(char));
  23.       c = fgetc(archivo);
  24.       n = arbol_crearNodo(buffer);
  25.       if(arbol.raiz == NULL){
  26.       arbol.raiz = &n;
  27.       }
  28.       else{
  29.       Nodo* aux = arbol.raiz;
  30.       if(aux->hijo == NULL){
  31.       n.hijo = &n;
  32.       }
  33.       else{
  34.       aux = aux->hijo;
  35.       }
  36.  
  37.       }
  38.    }
  39.       printf("%s\n", buffer); //La etiqueta queda guardada en buffer
  40. }
  41. }
  42.  
  43.  
  44. ///////////////////////////////////////////////////////////////////////////////////////////
  45. /*Este es el arbol.h que hice*/
  46.  
  47. #include <stdio.h>
  48. #include <stdlib.h>
  49. #include <string.h>
  50.  
  51. typedef struct MiNodo{
  52. char* dato;
  53. struct MiNodo* hijo;
  54. }Nodo;
  55.  
  56. typedef struct{
  57. Nodo* raiz;
  58. }Arbol;
  59.  
  60. Nodo arbol_crearNodo(char* dato){
  61. Nodo n;
  62. n.dato = dato;
  63. n.hijo = malloc(sizeof(Nodo));
  64. n.hijo = NULL;
  65.  
  66. return n;
  67. }
  68.  
  69. Arbol arbol_crearArbol(){
  70. Arbol a;
  71. a.raiz = malloc(sizeof(Nodo*));
  72. a.raiz = NULL;
  73.  
  74. return a;
  75. }
  76.  
  77. void arbol_imprimir(Nodo n){
  78. printf("%s\t", n.dato);
  79. }
  80.  
  81. void arbol_imprimirPreorden(Nodo *n){
  82. //raiz-izq-der
  83. if( n != NULL){
  84. arbol_imprimir(*n);
  85. arbol_imprimirPreorden(n->hijo);
  86. }
  87. }


Mod: Los códigos deben ir en etiquetas GeSHi, los titulos deben ser descriptivos al problema


« Última modificación: 12 Diciembre 2016, 02:47 am por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar nodo en un arbol binario
.NET (C#, VB.NET, ASP)
DaNuK 4 29,009 Último mensaje 6 Diciembre 2010, 20:19 pm
por DaNuK
Borrar nodo de un arbol
Programación C/C++
karmi 2 7,294 Último mensaje 10 Diciembre 2010, 18:02 pm
por do-while
[C] Eliminando Nodo de Arbol Binario (Solucionado)
Programación C/C++
AlbertoBSD 5 15,516 Último mensaje 31 Mayo 2016, 05:01 am
por AlbertoBSD
Etiqueta <meta> en HTML.
Desarrollo Web
Ali Baba 3 2,097 Último mensaje 5 Agosto 2016, 21:21 pm
por + 1 Oculto(s)
Insertar nodo en Arbol Generico
Software
EASoft 0 1,454 Último mensaje 21 Agosto 2019, 15:03 pm
por EASoft
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines