É importante guardar as instruções em um vetor porque existem instruções que apontam para instruções passadas. Para evitar chamar uma instrução que chama outra que chama outra e assim por diante, é bom salvar cada instrução realizada com a ação do robô em vez de uma referência. Ou seja, se uma instrução apontar para outra que faz o robô andar para esquerda, salvamos que ele foi para a esquerda.
#include <string.h>
#include <stdio.h>
int main(){
char palavra[10];
int instrucoes[101];
int T, n, posicao, instrucao;
scanf("%d", &T);
for(int k = 0; k < T; ++k){
scanf("%d", &n);
posicao = 0;
for(int i = 1; i <= n; ++i){
scanf("%s", &palavra);
if(!strcmp(palavra, "LEFT")){
instrucoes[i] = -1;
}else if(!strcmp(palavra, "RIGHT")){
instrucoes[i] = 1;
}else{
scanf("%s %d", &palavra, &instrucao);
instrucoes[i] = instrucoes[instrucao];
}
posicao += instrucoes[i];
scanf("\n");
}
printf("%d\n", posicao);
}
return 0;
}