An ADT (abstract data type) is the name given to a
form of
data structure which can be
implemented in different ways in different
languages to achieve the same effect.
The best example would be the linked list, which in C in its most basic form would look something like
struct linked_list_node
{
void *node_data;
linked_list_node *next_node_in_list;
};
But it doesn't necessarily have to look like this, and you don't necessarily have to do it in C, or even in a language with real "
pointers", for it to still be a linked list; it's an ADT, meaning it isn't an
implementation, but an
idea. Abstractly, the above would simply be "some sort of
structure consisting of a series of
nodes where each node contains some kind of information, and the location where the next node in the list can be found".
Advanced CS seems to consist mostly of learning new ADTs and new ways to use them. The most famous ADTs besides the linked list would be the doubly linked list, the queue, the stack, and probably most importantly the tree.