Merge branch 'main' of git.kemt.fei.tuke.sk:ak643du/usaa24
This commit is contained in:
		
						commit
						3b96464bb1
					
				
							
								
								
									
										13
									
								
								cv4/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								cv4/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | CFLAGS= -std=c99 -g -Wall | ||||||
|  | 
 | ||||||
|  | all: train | ||||||
|  | 
 | ||||||
|  | %.o: %.c | ||||||
|  | 	gcc -c -o $@ $< $(CFLAGS) | ||||||
|  | 
 | ||||||
|  | train: main.o a_train.o | ||||||
|  | 	gcc main.o a_train.o -o train  | ||||||
|  | 
 | ||||||
|  | clean: | ||||||
|  | 	rm *.o train | ||||||
|  | 
 | ||||||
							
								
								
									
										72
									
								
								cv4/a_train.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								cv4/a_train.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | |||||||
|  | #include "a_train.h" | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  | 
 | ||||||
|  | struct car* add_car(struct car* first, const char* target) { | ||||||
|  |     struct car* last = first; | ||||||
|  |     struct car* newcar = calloc(1, sizeof(struct car)); | ||||||
|  |     strcpy(newcar->value, target); | ||||||
|  | 
 | ||||||
|  |     if (last != NULL) { | ||||||
|  |         struct car* current = last; | ||||||
|  |         while (current->next != NULL) { | ||||||
|  |             current = current->next; | ||||||
|  |         } | ||||||
|  |         current->next = newcar; | ||||||
|  |     } else { | ||||||
|  |         last = newcar; | ||||||
|  |         return last; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return first; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void print_train(struct car* first) { | ||||||
|  |     if(first != NULL){ | ||||||
|  |         struct car* current = first; | ||||||
|  |         while(current->next != NULL){ | ||||||
|  |             printf("%s\n", current->value); | ||||||
|  |             current = current->next; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void cancel_train(struct car* first) { | ||||||
|  |     struct car* current = first; | ||||||
|  |     while(first != NULL){ | ||||||
|  |         current = current->next; | ||||||
|  |         free(first); | ||||||
|  |         first = current; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | struct car* clear_train(struct car* first, const char* target) { | ||||||
|  |     if (first == NULL) { | ||||||
|  |         return NULL; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     struct car* current = first; | ||||||
|  |     struct car* previous = NULL; | ||||||
|  | 
 | ||||||
|  |     while (current != NULL && strcmp(current->value, target) == 0) { | ||||||
|  |         struct car* temp = current; | ||||||
|  |         first = current->next; | ||||||
|  |         current = first; | ||||||
|  |         free(temp); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     while (current != NULL) { | ||||||
|  |         if (strcmp(current->value, target) == 0) { | ||||||
|  |             previous->next = current->next; | ||||||
|  |             free(current); | ||||||
|  |             current = previous->next; | ||||||
|  |         } else { | ||||||
|  |             previous = current; | ||||||
|  |             current = current->next; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return first; | ||||||
|  | } | ||||||
							
								
								
									
										51
									
								
								cv4/a_train.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								cv4/a_train.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | #ifndef TRAIN_H | ||||||
|  | #define TRAIN_H | ||||||
|  | #define SIZE 100 | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Jeden vozen vlaku | ||||||
|  |  */ | ||||||
|  | struct car { | ||||||
|  |     /**
 | ||||||
|  |      * Nazov cielovej  stanice | ||||||
|  |      */ | ||||||
|  |     char value[SIZE]; | ||||||
|  |     /**
 | ||||||
|  |      * Smenik na dalsi vozen | ||||||
|  |      */ | ||||||
|  |     struct car* next; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Prida vozen na koniec vlaku. | ||||||
|  |  * | ||||||
|  |  * @arg nazov cielovej stanice, ktory sa ma priradit novemu voznu. | ||||||
|  |  * @return smernik na zaciatok vlaku. | ||||||
|  |  */ | ||||||
|  | struct car* add_car(struct car* first,const char* target); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Vypise vsetky vozne vo vlaku | ||||||
|  |  * | ||||||
|  |  * @arg smernik na prvy vozen | ||||||
|  |  */ | ||||||
|  | void print_train(struct car* first); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Zrusenie vsetkych voznov vo vlaku. | ||||||
|  |  * @arg smernik na prvy vozen | ||||||
|  |  */ | ||||||
|  | void cancel_train(struct car* first); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * Vyradenie vsetkych voznov, ktorych cielova stanica je target | ||||||
|  |  * | ||||||
|  |  * @arg smernik na prvy vozen | ||||||
|  |  * @arg cielova stanica, ktora sa ma vyradit z vlaku. | ||||||
|  |  * @return smernik na novy prvy vozen | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | struct car* clear_train(struct car* first,const char* target); | ||||||
|  | 
 | ||||||
|  | #endif // TRAIN_H
 | ||||||
							
								
								
									
										17
									
								
								cv4/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								cv4/main.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | #include "a_train.h" | ||||||
|  | #include <stdio.h> | ||||||
|  | 
 | ||||||
|  | // Testovaci subor pre vlak
 | ||||||
|  | int main(){ | ||||||
|  |     struct car* train = NULL; | ||||||
|  |     train = add_car(train,"Presov"); | ||||||
|  |     train = add_car(train,"Bratislava"); | ||||||
|  |     train = add_car(train,"Levoca"); | ||||||
|  |     train = add_car(train,"Spiska Nova Ves"); | ||||||
|  |     print_train(train); | ||||||
|  |     train = clear_train(train,"Levoca"); | ||||||
|  |     print_train(train); | ||||||
|  |     cancel_train(train); | ||||||
|  | 
 | ||||||
|  |     return 0; | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user