Id learn DataStructures first for sure. Im not sure Id worry about the Linked Lists and such, since theyre a little different in .NET. In C/C++ where you had pointers, you had more control to create these specialized types of objects. In .NET its much simpler, in that you can create an object with a reference to itself, to keep track of your list. Or, you can use built-in collection objects for many simple collection types (Stack, Queue, Hashtable, etc.).
The API is good to know as well, but its generally for when you need to do something specific that .NET doesnt expose for you. So just learning the Win32 API might be fun but you wont need many of them. There might be some benefit to knowing what it has available in case you want to take advantage of it when an otherwise unsolvable problem comes up. But, I think youd get a much greater benefit as a programmer/developer learning the core coding techniques.
Besides data structure, learning good .NET structured programming is good to know, too. Meaning, when to create classes, methods, properties, etc. is important and cant readily be taught by books or school.
Before learning the API, Id learn about the .NET framework (all the built-in classes). Ive only had to use the API 2 times so far in the past year - a couple of calls to do some subclassing (to intercept all user input to handle auto-timeouts) and a few to find a message box window handle to shut it down (when an app times out and I want to kill a users session to force them to log back in). Those cases are rare and I couldnt tell you without looking them up again what the calls are or how they work. The point being that the API is useful, but you probably wont remember the exactp API calls very often. Good programming lasts forever, regardless of language or platform.
-Nerseus