Ai facut o chestie dubioasa la declararea structului, o combinatie intre C si C++. Daca folosesti C++ nu mai pune typedef, daca folosesti C cred ca e ceva de genul:
typedef struct { ... } nod;
nod L[30];
In plus, pNode e pointer la tip "nod", dar L[] nu contine pointeri. Ar trebui sa fie asa:
nod *pNode=L+node; // sau &(L[node])
Sau poate ai gresit la declararea initiala:
nod* L[30];
...
nod *pNode = L[node];