5.顺序存储结构性能分析 (1)查找:最好情况时间复杂度为O(1),最坏情况事件复杂度为O(2) (2)删除、插入:单链表的插入和删除主要由两部分组成:第一部分是遍历查询第i个元素;第二部分就是插入和删除元素 从整个算法来说,我们很容易推导出:它们的时间复杂度都是O(n)。如果在我们不知道第i个元素的指针位置,单链表数据结构在插入和删除操作上,与线性表的顺序存储解雇是没有太大的优势。但是如果我们希望从第i个位置,插入10个元素,对于顺序存储结构意味着,每一次插入都需要移动n-i个元素,每次都是O(n)。而对于单链表,我们只需要在第一次找到第i个位置的指针,此时为O(n),接下来只是简单地通过赋值移动指针而已,时间复杂度都是O(1)。 总结:对于插入或删除数据越频繁的操作,单链表的效率优势就越明显。
03.线性表(二)链式存储结构.单链表1(二)
下一个结点存储地址赋值给s结点指针域 (5)p->next=s; 将结点s设置为p的下一个结点 事实上,(4)(5)我们可以这样理解: 假设初始链表相连两个结点p、q,即......-p-q-......,现在我们需要在结点p、q之间插入一个结点s,则 方法如下:由于p->next=q 则s->next=q //结点s后继为q p->next=s //结点p后继为s,此时即可形成......-p-s-q-......
5.顺序存储结构性能分析 (1)查找:最好情况时间复杂度为O(1),最坏情况事件复杂度为O(2) (2)删除、插入:单链表的插入和删除主要由两部分组成:第一部分是遍历查询第i个元素;第二部分就是插入和删除元素 从整个算法来说,我们很容易推导出:它们的时间复杂度都是O(n)。如果在我们不知道第i个元素的指针位置,单链表数据结构在插入和删除操作上,与线性表的顺序存储解雇是没有太大的优势。但是如果我们希望从第i个位置,插入10个元素,对于顺序存储结构意味着,每一次插入都需要移动n-i个元素,每次都是O(n)。而对于单链表,我们只需要在第一次找到第i个位置的指针,此时为O(n),接下来只是简单地通过赋值移动指针而已,时间复杂度都是O(1)。 总结:对于插入或删除数据越频繁的操作,单链表的效率优势就越明显。
5.顺序存储结构性能分析 (1)查找:最好情况时间复杂度为O(1),最坏情况事件复杂度为O(2) (2)删除、插入:单链表的插入和删除主要由两部分组成:第一部分是遍历查询第i个元素;第二部分就是插入和删除元素 从整个算法来说,我们很容易推导出:它们的时间复杂度都是O(n)。如果在我们不知道第i个元素的指针位置,单链表数据结构在插入和删除操作上,与线性表的顺序存储解雇是没有太大的优势。但是如果我们希望从第i个位置,插入10个元素,对于顺序存储结构意味着,每一次插入都需要移动n-i个元素,每次都是O(n)。而对于单链表,我们只需要在第一次找到第i个位置的指针,此时为O(n),接下来只是简单地通过赋值移动指针而已,时间复杂度都是O(1)。 总结:对于插入或删除数据越频繁的操作,单链表的效率优势就越明显。