Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define AKCJA_0 1
- #define AKCJA_1 2
- #define AKCJA_2 3
- struct element {
- struct element *nastepny;
- struct element *poprzedni;
- struct element *pierwszy;
- int akcja;
- int nastepna_akcja;
- };
- //tablica zakotwiczen
- struct element *tablica[3];
- struct element *aktualny[3];
- struct element *temp[3];
- struct element *temp_2;
- int main(int argc, char *argv[]) {
- int liczba_iteracji = atoi(argv[1]);
- if (argc != 2 || liczba_iteracji == 0) {
- printf("\n Podaj liczbe iteracji ktora musi byc wieksza niz 0! \n");
- exit(0);
- }
- printf("\n Liczba iteracji: %d \n", liczba_iteracji);
- int i = 0;
- int aktualnaAkcja = 1;
- //wpisywanie do komórek
- for (i = 0; i < liczba_iteracji; i++) {
- //
- int j = 0;
- for (j = 0; j < 3; j++) {
- if (tablica[j] == NULL ) {
- tablica[j] = (struct element*) malloc(sizeof(struct element));
- printf("\n:::Adres elementu[%d]: 0x%x \n", j, tablica[j]);
- tablica[j]->pierwszy = tablica[j];
- tablica[j]->nastepny = NULL;
- tablica[j]->poprzedni = NULL;
- if (j == 0) {
- tablica[j]->akcja = AKCJA_0;
- tablica[j]->nastepna_akcja = AKCJA_1;
- } else if (j == 1) {
- tablica[j]->akcja = AKCJA_1;
- tablica[j]->nastepna_akcja = AKCJA_2;
- } else if (j == 2) {
- tablica[j]->akcja = AKCJA_2;
- tablica[j]->nastepna_akcja = AKCJA_0;
- }
- printf("Akcja: AKCJA_%d \n", (tablica[j]->akcja) - 1);
- printf("Następna akcja: AKCJA_%d \n",
- (tablica[j]->nastepna_akcja) - 1);
- } else {
- aktualny[j] = (struct element*) malloc(sizeof(struct element));
- printf("\n:::Adres elementu[%d]: 0x%x \n", j, aktualny[j]);
- for (temp[j] = tablica[j]; temp[j]->nastepny != NULL ; temp[j] =
- temp[j]->nastepny) {
- //printf("Sprawdzany adres[%d]:%x \n", j, temp[0]);
- }
- aktualny[j]->nastepny = NULL;
- aktualny[j]->poprzedni = temp[j];
- aktualny[j]->pierwszy = tablica[j];
- if (j == 0) {
- aktualny[j]->akcja = AKCJA_0;
- aktualny[j]->nastepna_akcja = AKCJA_1;
- } else if (j == 1) {
- aktualny[j]->akcja = AKCJA_1;
- aktualny[j]->nastepna_akcja = AKCJA_2;
- } else if (j == 2) {
- aktualny[j]->akcja = AKCJA_2;
- aktualny[j]->nastepna_akcja = AKCJA_0;
- }
- printf("Akcja: AKCJA_%d \n", (aktualny[j]->akcja) - 1);
- printf("Następna akcja: AKCJA_%d \n",
- (aktualny[j]->nastepna_akcja) - 1);
- temp[j]->nastepny = aktualny[j];
- }
- }
- }
- printf("\n USUWANIE Z KOLEJKI - FIFO \n");
- printf("\n Liczba iteracji: %d \n", liczba_iteracji);
- while (tablica[2] != NULL ) {
- printf("\n:::Adres elementu[2]: 0x%x \n", tablica[2]);
- printf("Akcja: AKCJA_%d \n", (tablica[2]->akcja) - 1);
- printf("Następna akcja: AKCJA_%d \n", (tablica[2]->nastepna_akcja) - 1);
- temp_2 = tablica[2]->nastepny;
- free(tablica[2]);
- tablica[2] = (struct element*) malloc(sizeof(struct element));
- tablica[2] = temp_2;
- printf("\n:::Adres elementu[0]: 0x%x \n", tablica[0]);
- printf("Akcja: AKCJA_%d \n", (tablica[0]->akcja) - 1);
- printf("Następna akcja: AKCJA_%d \n", (tablica[0]->nastepna_akcja) - 1);
- temp_2 = tablica[0]->nastepny;
- free(tablica[0]);
- tablica[0] = (struct element*) malloc(sizeof(struct element));
- tablica[0] = temp_2;
- printf("\n:::Adres elementu[1]: 0x%x \n", tablica[1]);
- printf("Akcja: AKCJA_%d \n", (tablica[1]->akcja) - 1);
- printf("Następna akcja: AKCJA_%d \n", (tablica[1]->nastepna_akcja) - 1);
- temp_2 = tablica[1]->nastepny;
- free(tablica[1]);
- tablica[1] = (struct element*) malloc(sizeof(struct element));
- tablica[1] = temp_2;
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement