Criando recursivamente uma hierarquia de árvore sem usar classe / objeto

Estou com problemas para criar uma hierarquia de árvores no Python 3. Gostaria de fazer isso sem usar classes.

Os dados com os quais eu preciso começar não estão em ordem e no formato['ID','Parent']:

data=[['E1', 'C1'],['C1', 'P1'],['P1', 'R1'],['E2', 'C2'],['C2', 'P2'],['P2', 'R1'],['C3', 'P2'],['E3', 'C4'],['C4', 'P3'],
  ['P3', 'R2'],['C5', 'P3'],['E4', 'C6'],['C6', 'P4'], ['P4', 'R2'],['E5', 'C7'],['C7', 'P5'],['P5', 'R3'],['E6', 'C9'],['C9', 'P6'],['P6', 'R3'],
  ['C8', 'P6'],['E7', 'C10'],['C10', 'P7'],['P7', 'R4'],['C11', 'P7'],['E8', 'C12'],['C12', 'P8'],['P8', 'R4']]

Eu quero criar a variável de dicionário (Árvore)sem o uso de classes e acabar com algo como:

Tree={'R1':{'P1':{},'P2':{}},'R2':{}} etc

OU

Tree={'R1':[{'P1':[],'P2':[]}],'R2':[]} etc

Obviamente, R1 e R2 têm mais filhos do que isso, mas talvez seja assim que a estrutura da árvore seria?

questionAnswers(1)

yourAnswerToTheQuestion