Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define AKCJA_0 1
  5. #define AKCJA_1 2
  6. #define AKCJA_2 3
  7.  
  8. struct element {
  9. struct element *nastepny;
  10. struct element *poprzedni;
  11. struct element *pierwszy;
  12. int akcja;
  13. int nastepna_akcja;
  14. };
  15.  
  16. //tablica zakotwiczen
  17. struct element *tablica[3];
  18.  
  19. struct element *aktualny[3];
  20. struct element *temp[3];
  21. struct element *temp_2;
  22.  
  23. int main(int argc, char *argv[]) {
  24.  
  25. int liczba_iteracji = atoi(argv[1]);
  26.  
  27. if (argc != 2 || liczba_iteracji == 0) {
  28. printf("\n Podaj liczbe iteracji ktora musi byc wieksza niz 0! \n");
  29. exit(0);
  30. }
  31.  
  32. printf("\n Liczba iteracji: %d \n", liczba_iteracji);
  33.  
  34. int i = 0;
  35. int aktualnaAkcja = 1;
  36.  
  37. //wpisywanie do komórek
  38. for (i = 0; i < liczba_iteracji; i++) {
  39. //
  40. int j = 0;
  41. for (j = 0; j < 3; j++) {
  42. if (tablica[j] == NULL ) {
  43. tablica[j] = (struct element*) malloc(sizeof(struct element));
  44. printf("\n:::Adres elementu[%d]: 0x%x \n", j, tablica[j]);
  45. tablica[j]->pierwszy = tablica[j];
  46. tablica[j]->nastepny = NULL;
  47. tablica[j]->poprzedni = NULL;
  48. if (j == 0) {
  49. tablica[j]->akcja = AKCJA_0;
  50. tablica[j]->nastepna_akcja = AKCJA_1;
  51. } else if (j == 1) {
  52. tablica[j]->akcja = AKCJA_1;
  53. tablica[j]->nastepna_akcja = AKCJA_2;
  54. } else if (j == 2) {
  55. tablica[j]->akcja = AKCJA_2;
  56. tablica[j]->nastepna_akcja = AKCJA_0;
  57. }
  58.  
  59. printf("Akcja: AKCJA_%d \n", (tablica[j]->akcja) - 1);
  60.  
  61. printf("Następna akcja: AKCJA_%d \n",
  62. (tablica[j]->nastepna_akcja) - 1);
  63.  
  64. } else {
  65. aktualny[j] = (struct element*) malloc(sizeof(struct element));
  66. printf("\n:::Adres elementu[%d]: 0x%x \n", j, aktualny[j]);
  67. for (temp[j] = tablica[j]; temp[j]->nastepny != NULL ; temp[j] =
  68. temp[j]->nastepny) {
  69. //printf("Sprawdzany adres[%d]:%x \n", j, temp[0]);
  70. }
  71. aktualny[j]->nastepny = NULL;
  72. aktualny[j]->poprzedni = temp[j];
  73. aktualny[j]->pierwszy = tablica[j];
  74.  
  75. if (j == 0) {
  76. aktualny[j]->akcja = AKCJA_0;
  77. aktualny[j]->nastepna_akcja = AKCJA_1;
  78. } else if (j == 1) {
  79. aktualny[j]->akcja = AKCJA_1;
  80. aktualny[j]->nastepna_akcja = AKCJA_2;
  81. } else if (j == 2) {
  82. aktualny[j]->akcja = AKCJA_2;
  83. aktualny[j]->nastepna_akcja = AKCJA_0;
  84. }
  85.  
  86. printf("Akcja: AKCJA_%d \n", (aktualny[j]->akcja) - 1);
  87.  
  88. printf("Następna akcja: AKCJA_%d \n",
  89. (aktualny[j]->nastepna_akcja) - 1);
  90.  
  91. temp[j]->nastepny = aktualny[j];
  92. }
  93. }
  94. }
  95.  
  96. printf("\n USUWANIE Z KOLEJKI - FIFO \n");
  97.  
  98. printf("\n Liczba iteracji: %d \n", liczba_iteracji);
  99.  
  100. while (tablica[2] != NULL ) {
  101.  
  102. printf("\n:::Adres elementu[2]: 0x%x \n", tablica[2]);
  103. printf("Akcja: AKCJA_%d \n", (tablica[2]->akcja) - 1);
  104. printf("Następna akcja: AKCJA_%d \n", (tablica[2]->nastepna_akcja) - 1);
  105. temp_2 = tablica[2]->nastepny;
  106. free(tablica[2]);
  107. tablica[2] = (struct element*) malloc(sizeof(struct element));
  108. tablica[2] = temp_2;
  109.  
  110. printf("\n:::Adres elementu[0]: 0x%x \n", tablica[0]);
  111. printf("Akcja: AKCJA_%d \n", (tablica[0]->akcja) - 1);
  112. printf("Następna akcja: AKCJA_%d \n", (tablica[0]->nastepna_akcja) - 1);
  113. temp_2 = tablica[0]->nastepny;
  114. free(tablica[0]);
  115. tablica[0] = (struct element*) malloc(sizeof(struct element));
  116. tablica[0] = temp_2;
  117.  
  118. printf("\n:::Adres elementu[1]: 0x%x \n", tablica[1]);
  119. printf("Akcja: AKCJA_%d \n", (tablica[1]->akcja) - 1);
  120. printf("Następna akcja: AKCJA_%d \n", (tablica[1]->nastepna_akcja) - 1);
  121. temp_2 = tablica[1]->nastepny;
  122. free(tablica[1]);
  123. tablica[1] = (struct element*) malloc(sizeof(struct element));
  124. tablica[1] = temp_2;
  125.  
  126. }
  127.  
  128. return EXIT_SUCCESS;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement