版权声明: https://blog.csdn.net/leelitian3/article/details/82776210
思路
①处理每一行:
每一行都处理为一个结构体,包含3个属性:级别(rank)、元素名称(element)、id名称
级别 = 点的数量 / 2
元素名称 & id名称 都可以通过字符串处理获得,若无ID则为空
注意将元素名转为小写
②处理树的结构:
对于每一个结点v,找到它的前驱结点u,即向上找到第一个u.rank = v.rank - 1
③处理查询:
利用stringstream将几个单词储存进vector,元素名称全部改为小写
1.若查询只有一个单词,则遍历所有结构体查找即可
2.若查询有多个单词,如div q p,则先找到p,然后向上依次查找它的前驱结点,找到q,div
思路是100分,考场上写过了,这里就不想重复啦~