We introduce an assertion language for run-time checking of linked list data structure shapes. The assertion language is expressive enough to define characteristic predicates for data structures created with the use of pointers and dynamic memory allocation. Examples of such data structures include singly linked list, binary tree, doubly linked list, and cyclic list. These characteristic predicates may be used for automatic run-time detection of data constraint violations. Some results of experiments with a prototype assertion checker implementation for the PASCAL programming language are presented.