自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 《数据结构与算法之美》学习笔记Day3

2.未引入“哨兵”的情况如果在p节点后插入一个节点,只需2行代码即可搞定:new_node—>next = p—>next;}如果要删除节点p的后继节点,只需1行代码即可搞定:p—>next = p—>next—>next;1.插入节点在节点a和节点b之间插入节点x,b是a的下一节点,p指针指向节点a,则造成指针丢失和内存泄漏的代码:p—>next = x;2.删除节点在节点a和节点b之间删除节点b,b是a的下一节点,p指针指向节点a:p—>next = p—>next—>next;1.什么是“哨兵”?

2023-01-18 22:58:30 39

原创 《数据结构与算法之美》学习笔记Day2

对于第二种情况,要进行删除操作必须找到前驱节点,单链表需要从头到尾进行遍历直到p->next = q,时间复杂度为O(n),而双向链表可以直接找到前驱节点,时间复杂度为O(1)。数组简单易用,在实现上使用连续的内存空间,可以借助CPU的缓冲机制预读数组中的数据,所以访问效率更高,而链表在内存中并不是连续存储,所以对CPU缓存不友好,没办法预读。2)对链表进行频繁的插入和删除操作,会导致频繁的内存申请和释放,容易造成内存碎片,如果是Java语言,还可能会造成频繁的GC(自动垃圾回收器)操作。

2023-01-17 23:09:04 36

原创 《数据结构与算法之美》学习笔记Day1

数组看起来简单基础,但是很多人没有理解这个数据结构的精髓。带着为什么数组要从0开始编号,而不是从1开始的问题,进入主题。 1. 数组如何实现随机访问 1) 数组是一种线性数据结构,用连续的存储空间存储相同类型数据 I) 线性表:数组、链表、队列、栈 非线性表:树 图 II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作 a) 数组如何实现下标随机访问。 引入数组再内存种的分配图,得出寻址公式 b) 纠正数组和链表的错误认识。数组的查找

2023-01-16 23:53:07 36

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除