#include "a_station.h" #include #include 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; int i; for(hash = i = 0; i < len; ++i) { hash += key[i]; hash += (hash << 10); hash ^= (hash >> 6); } hash += (hash << 3); hash ^= (hash >> 11); hash += (hash << 15); return hash; }*/ void destroy_station(struct station* station){ //struct car* del =prev; for(int i=0;i>station->track_count;i++){ struct car* prev = station->tracks[i]; while (prev!=NULL) { struct car* del =prev; prev=del->next; free(del); } } free(station->tracks); free(station); } int select_track(struct station* station, const char* target){ unsigned long hash=0; for(int i=0;target[i]!='\0';i++){ hash = ((hash << 5) + hash) + target[i]; /* hash * 33 + c */ } hash = hash%station->track_count; return hash; } void add_target_capacity(struct station* station,const char* target, int capacity){ } int get_target_capacity(struct station* station,const char* target){ return 0; } int count_targets(struct station* station){ return 0; } int count_capacity(struct station* station){ return 0; }