对于一道作业问题,我被问及一个包含n个节点和m条边的图用邻接表表示时,为什么insertVertex需要O(1),而deleteVertex需要O(m)。
我不是完全确定我的答案是否正确,但我认为insertVertex的时间复杂度为O(1),因为当你首次插入时,你所添加到数组中的只有一个节点和一组相邻节点(也就是新节点指向的节点)。因此,这个时间复杂度是常数。然而,当你删除一个节点时,你不仅需要删除该节点和与其相关的相邻边,还需要遍历剩余的m条边,以确保删除指向你要删除的节点的边(因为你不能有一条指向空的边)。
由于我对图论不太熟悉,因此我不确定我的想法是否正确。
我不是完全确定我的答案是否正确,但我认为insertVertex的时间复杂度为O(1),因为当你首次插入时,你所添加到数组中的只有一个节点和一组相邻节点(也就是新节点指向的节点)。因此,这个时间复杂度是常数。然而,当你删除一个节点时,你不仅需要删除该节点和与其相关的相邻边,还需要遍历剩余的m条边,以确保删除指向你要删除的节点的边(因为你不能有一条指向空的边)。
由于我对图论不太熟悉,因此我不确定我的想法是否正确。