- 博客(4)
- 收藏
- 关注
原创 顺序表和链表的4点比较
(malloc函数)的方式,动态存储分配虽然存储空间可以扩充,但需要移动大量元素,导致操作效率降低,而且若内存中没有更大块的连续存储空间,则会导致分配失败。链式存储的结点空间只在需要时申请分配,不需要连续的空间,充分利用零散的空间,故只要内存有空间就可以分配,操作灵活、高效。分配情形下,如果存储空间装满,再加入新元素,则会出现内存溢出,因此需要预先分配足够大的存储空间。例如在第i个位置上执行存取的操作,顺序表仅需一次访问,而链表则需从表头开始依次访问i次。:逻辑上相邻的元素,物理存储位置也相邻。
2024-04-15 14:07:20 243
原创 2.3.1 单链表的基本操作+代码
线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了建立数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息之外,还需要存放一个指向其后继的指针你可以理解成链表就是把顺序表全部“切”成一段一段,再利用指针将这些“碎片”连接起来,这些“碎片”就是结点typedef struct LNode{//定义单链表节点类型//数据域//指针域//两者是一样的,都是别名单链表解决了顺序表需要大量连续存储空间的缺点,但引入了指针域增加了一定空间上的开销。
2024-04-14 22:21:51 1259
原创 2.1+2.2顺序表及相关代码剖析+考研真题和例题
删除第i个元素需要将该元素之后的全部元素依次前移一个位置,平均时间复杂度为O(n)。:假设p1(p1=1/n)是查找的元素在第i(1<=i<=L.length)个位置上的概率,则在长度为n的线性表中查找值为e的元素所需比较的平均次数为。】 顺序存储需要连续的存储空间,在申请时需要申请n+m个连续的存储空间,然后将线性表原来的n个元素复制到新申请的n+m个连续的存储空间的前n个单元。 第1个元素存储在顺序表的起始位置,第i个元素的存储位置后面紧接着存储的是第i+1个元素,称i为元素a,在顺序表中的位序。
2024-04-11 11:21:49 827
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人