Does it need to have none volatile storage (so its still stored if the machine is turned off or on?)

Data structure wise, there is always the good ole linked list, but if you. can something like a tree will give better searching results (for slightly more overhead possibly.)

Do you know how to "create" data structures in C alright?