the basic data structure