Advertisement
Guest User

Untitled

a guest
May 29th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. // Kwiatki.cpp : Defines the entry point for the console application.
  2. //
  3. #pragma warning(disable:4996)
  4. #include <cstdio>
  5. #include <math.h>
  6.  
  7. struct WEZEL
  8. {
  9. int parent = 0;
  10. int sciezkaLewa = 0;
  11. int sciezkaPrawa = 0;
  12. int iloscKwiatkow = 0;
  13. int* tab;
  14. }wezel;
  15.  
  16. void wyznaczLiscie(WEZEL* tab, int* liscie, int rozmiarTablicy)
  17. {
  18. liscie[0] = 0;
  19. for (int i = 1; i < rozmiarTablicy; i++)
  20. {
  21. if (tab[i].sciezkaLewa == 0 && tab[i].sciezkaPrawa == 0)
  22. {
  23. liscie[i] = 1;
  24. }
  25. else
  26. {
  27. liscie[i] = 0;
  28. }
  29. }
  30. }
  31.  
  32. void obliczKwiatki(WEZEL* mapa,int wezel)
  33. {
  34. if (mapa[wezel].sciezkaLewa == 0 && mapa[wezel].sciezkaPrawa == 0)
  35. {
  36. mapa[wezel].tab = new int[1];
  37. mapa[wezel].tab[0] = 0;
  38. obliczKwiatki(mapa, mapa[wezel].parent);
  39. }
  40. else
  41. {
  42.  
  43.  
  44.  
  45. }
  46. }
  47.  
  48.  
  49. int main()
  50. {
  51. int liczbaSciezek;
  52. int liczbaRuchow;
  53. int koniec1;
  54. int koniec2;
  55. int liczbaKwiatkowNaSciezce;
  56.  
  57. scanf("%d", &liczbaSciezek);
  58. scanf("%d", &liczbaRuchow);
  59.  
  60. WEZEL* mapa = new WEZEL[liczbaSciezek+2];
  61. int wykladnik = liczbaSciezek / 2;
  62. int *liscie = new int[pow(2,wykladnik) ];
  63. // budowa mapy
  64. for (int i = 0; i < liczbaSciezek; i++)
  65. {
  66. scanf("%d",&koniec1);
  67. scanf("%d", &koniec2);
  68. scanf("%d", &liczbaKwiatkowNaSciezce);
  69. if (mapa[koniec1].sciezkaPrawa == 0)
  70. {
  71. mapa[koniec1].sciezkaPrawa = koniec2;
  72. mapa[koniec2].parent = koniec1;
  73. }
  74. else
  75. {
  76. if (mapa[koniec1].sciezkaPrawa < koniec2)
  77. {
  78. mapa[koniec1].sciezkaLewa = mapa[koniec1].sciezkaPrawa;
  79. mapa[koniec1].sciezkaPrawa = koniec2;
  80. }
  81. else
  82. {
  83. mapa[koniec1].sciezkaLewa = koniec2;
  84. }
  85. mapa[koniec2].parent = koniec1;
  86. }
  87. mapa[koniec2].iloscKwiatkow = liczbaKwiatkowNaSciezce;
  88.  
  89. }
  90.  
  91. wyznaczLiscie(mapa, liscie, liczbaSciezek + 2);
  92.  
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement