在作Jena推导owl本体文件的一个项目的时候,遇到要实现记录每一个节点的父节点的状况,算法
一开始想的是经过树形的数据结构来作,但后来发现这个很难,由于每次更新树的时候,不知道数据结构
怎么将新的子节点传给树,对数作一个更新,并且树中并无存放那个节点是那个节点的父节点这样的信息。编码
其实这个问题只须要对访问过的节点定义一个List,将访问过的节点加入到这个List中,而后对与这个List,创建一个List
fatherList,用来存放这些节点的父节点,问题就很好的解决了,虽然对于多个节点对应同一个父节点的状况,有一点浪费方法
存储空间,可是编码要简单的多。数据
感悟:这个方法是本身忽然想到《图论》中的最短路径的方法(Dijkstra)中是这样记录父节点后想到的,因此项目
有些时候看书的时候以为书中的方法很简单,本身很容易就可以理解,可是当本身遇到一样的问题的时候,却一直想不到文件
书中那些很简单可是很好的方法。这告诉咱们要多多回味一些经典的算法,里面有不少咱们没有真正理解的东西。感悟