The correct answer is C. tree.

A hierarchical data structure is a data structure that is organized in a tree-like manner. The data is stored in nodes, and each node has a parent node and child nodes. The root node is the top node in the tree, and the leaf nodes are the bottom nodes in the tree.

An array is a linear data structure, which means that the data is stored in a single, continuous block of memory. The elements in an array are accessed by their index, which is a number that indicates the position of the element in the array.

A linked list is a linear data structure, but the elements are not stored in a single, continuous block of memory. Instead, each element in a linked list is a separate node, and each node contains a pointer to the next node in the list.

A ring is a circular data structure, which means that the last element in the ring points back to the first element. This makes it possible to traverse the data in the ring multiple times without having to start over at the beginning.

Therefore, the only option that is a hierarchical data structure is C. tree.