Advertisement
Guest User

Matriz dinamica encadeada

a guest
May 29th, 2016
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. struct TpPont
  2. {
  3. TpPont *ant, *prox, *cima, *baixo;
  4. char elem;
  5. };
  6.  
  7. struct TpDescritor
  8. {
  9. TpPont *ini, *fim;
  10. int qtd;
  11. };
  12.  
  13. void CriaDescritor (TpDescritor &d)
  14. {
  15. d.ini = NULL;
  16. d.fim = NULL;
  17. d.qtd = 0;
  18. }
  19.  
  20. TpPont *CriarCaixa (char elem)
  21. {
  22. TpPont *p = new TpPont;
  23.  
  24. p->ant = NULL;
  25. p->prox = NULL;
  26. p->cima = NULL;
  27. p->baixo = NULL;
  28. p->elem = elem;
  29.  
  30. return p;
  31. }
  32.  
  33. void Criar (TpDescritor &d, int nivel)
  34. {
  35. TpPont *caixa = new TpPont;
  36. TpPont *ant = new TpPont;
  37. char elem;
  38. int j = 1, comeco = 1;
  39.  
  40. srand(time(NULL));
  41.  
  42. CriaDescritor (d);
  43.  
  44. elem = (rand()%22) + 97;
  45. caixa = CriarCaixa (elem);
  46.  
  47. if(d.ini == NULL)//Não tem nada na matriz ainda
  48. d.ini = caixa;
  49.  
  50. TpPont *p = d.ini;
  51.  
  52. for(int i=1; i<=MAX*nivel; i++) //Fazendo a primeira linha
  53. {
  54. elem = (rand()%22) + 97;
  55. caixa = CriarCaixa (elem);
  56. p->prox = caixa;
  57. caixa->ant = p;
  58. p = p->prox;
  59. }
  60.  
  61. while (j <= MAX*nivel)
  62. {
  63. p = d.ini;
  64. ant = p;
  65.  
  66. while (p->baixo != NULL) //Procurando linha nula
  67. {
  68. ant = p;
  69. p = p->baixo;
  70. }
  71.  
  72. elem = (rand()%22) + 97; //primeira letra da linha vazia
  73. caixa = CriarCaixa (elem);
  74. p->baixo = caixa;
  75. caixa->cima = p;
  76. ant = p;
  77. p = caixa;
  78. comeco = 0;
  79.  
  80. for (int i=1; i<=MAX*nivel; i++)//completando o resto da linha
  81. {
  82. ant = ant->prox;
  83. elem = (rand()%22) + 97;
  84. caixa = CriarCaixa (elem);
  85. p->prox = caixa;
  86. caixa->ant = p;
  87. caixa->cima = ant;
  88. ant->baixo = caixa;
  89. p = p->prox;
  90. }
  91. j++;
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement