kmp
linked list, hash