哪位大侠知道 QQ好友列表状态树实现原理,我的理解是其数据结构应该是三层树,第一层是根root,设置为不可见,所以只能看到它的子节点;第二层是根root的节点,也就是分组,比如好友列表中有“我的好友”节点。有几个分组就有几个节点,新建一个分组就是在root上添加一个新的子节点;第三层就是每个分组的内容了,即具体的qq号码,头像,状态。我的问题是客户端间隔一段时间后去服务器中刷新好友节点的状态,或者用户手工刷新这颗列表树时,就会返回当前时刻好友的状态,显示在列表树上,请问是否每刷新一次都重新建一下这颗树?

解决方案 »

  1.   

    我不知道他是怎么实现的,
    谈谈自己的看法。,请问是否每刷新一次都重新建一下这颗树?你想想可能么??何必。。刷新局部就可以了。。而且可能会有缓存存在 。。这种都要经过很严密的思考的。没这么简单。
      

  2.   

    是个好问题,刷新局部的话,就得先保存前面一份状态列表,然后再与当前从服务器中获取的列表做比较,有变化的就刷新,没变化的就保留?
      

  3.   

    我觉得应该不至于去重建,树里只要实现了增(插入)删改查子节点的操作就可以很好解决好友列表更新这问题了。
    好友上线下线,就是一个位置及状态的改变。
    像其他的 添加好友,就是增加节点;删除好友,就是删除节点等等。