From 823d21befb840061cdbd28a7b796744d49cf684e Mon Sep 17 00:00:00 2001 From: Radovan Kofira Date: Tue, 10 Nov 2020 19:44:27 +0100 Subject: [PATCH] nieco viac --- cv6/a_station.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/cv6/a_station.c b/cv6/a_station.c index 8e5593e..7ef4ea9 100644 --- a/cv6/a_station.c +++ b/cv6/a_station.c @@ -6,14 +6,14 @@ struct station* create_station(){ struct station* station = (struct station*)calloc(1,sizeof(struct station)); station->tracks = (struct car**)calloc(STATION_SIZE, sizeof(struct car*)); station->track_count = STATION_SIZE; + return station; } -unsigned long hash(char *key, size_t len) -{ - unsigned long hash, i; +/*unsigned long hash(char *key, size_t len){ + unsigned long hash; + int i; for(hash = i = 0; i < len; ++i) - { - hash += key[i]; + { hash += key[i]; hash += (hash << 10); hash ^= (hash >> 6); } @@ -21,12 +21,24 @@ unsigned long hash(char *key, size_t len) hash ^= (hash >> 11); hash += (hash << 15); return hash; -} +}*/ + void destroy_station(struct station* station){ } int select_track(struct station* station, const char* target){ - return 0; + unsigned long hash=0; + int i,len; +for(hash = i = 0; i < len; ++i) + { + hash += target[i]; + hash += (hash << 10); + hash ^= (hash >> 6); + } + hash += (hash << 3); + hash ^= (hash >> 11); + hash += (hash << 15); + return hash; } void add_target_capacity(struct station* station,const char* target, int capacity){