链表在二叉树上的优势?

Mic*_*ens 4 binary-tree linked-list data-structures

标题大多是不言自明的:链表比二叉树有什么优势?我能想到的唯一一个链表更有效的情况是迭代每个元素,在这种情况下,它仍然非常接近.看起来二进制树在访问数据和插入新元素方面都更快.那么为什么要使用链表呢?

P D*_*ddy 6

如果存储了链表的尾部,那么插入到链表中肯定比插入二叉树更快.如果不平衡,在最坏情况下插入二叉树是O(N)(最好是O(log N)).如果它是平衡的,那么插入是O(log N),但是有保持平衡的家务.如果保留尾部,则插入到链表中是O(1).

另外,正如BillyONeal所提到的,二叉树通常是一个关联结构,而链表则不是.

  • 这对于二进制*搜索*树来说是正确的,但是在(未排序的)二叉树的更一般情况下,插入仍然是O(1) - 毕竟,链表只是一个简并二叉树. (2认同)
  • @P爸爸,在谈论链接列表时,插入是一个令人困惑的术语.Append是O(1)操作,插入是O(n). (2认同)