A data structure organizes data in a computer so it can be used effectively. Common data structures include arrays, linked lists, stacks, and queues. Memory allocation functions like malloc() and calloc() allocate space in memory and return a pointer to it. Free() frees up previously allocated space. Realloc() changes the size of allocated space. Linked lists connect nodes, each containing data and a pointer to the next node. Single linked lists have one pointer per node pointing to the next. Circular linked lists connect the last node to the first, forming a loop. Doubly linked lists have two pointers in each node, pointing to both the next and previous nodes.