简答题

在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?

正确答案

1.单链表。当我们知道指针p指向某结点时,能够根据该指针找到其直接后继,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前趋。因此无法删去该结点。
2.双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前趋和直接后继,从而可以删除该结点。其时间复杂度为O(1)。
3.单循环链表。根据已知结点位置,我们可以直接得到其后相邻的结点位置(直接后继),又因为是循环链表,所以我们可以通过查找,得到p结点的直接前趋。因此可以删去p所指结点。其时间复杂度应为O(n)。

答案解析

相似试题
  • 在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为()和()。

    填空题查看答案

  • 在单链表和双向表中,能否从当前结点出发访问到任一结点?

    简答题查看答案

  • 在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。

    判断题查看答案

  • 在单链表中,要取得某个元素,只要知道该元素所在结点的地址即可,因此单链表是随机存取结构。

    判断题查看答案

  • 在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存储结构。

    判断题查看答案

  • 在循环单链表中,最后一个结点的指针指向()结点。

    填空题查看答案

  • 对一个循环单链表中,表尾结点的指针域与表头指针值()

    填空题查看答案

  • 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。

    简答题查看答案

  • 请说明顺序表和单链表各有何优缺点,并分析下列情况下,采用何种存储结构更好些。 ⑴若线性表的总长度基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素。 ⑵如果n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化。 ⑶描述一个城市的设计和规划。

    简答题查看答案