学习过程中印象比较深刻地地方:
- 链表就像他的名字一样,一条链子。所以在所有涉及链位地地方都需要从头开始(各种基本操作)时间复杂度就与之提高
- 链表的关键还是指针域,太难理解了!!!但是用多个指针然后分别实现各自功能真的很神奇
- 忘了什么是希尔排序(名字太抽象了了),然后补充一下知识点:就是把所有的数分成多个小组排好序后,再分成更好的小组重新排序,直到完全排完序。为什么这种排序不适合链表呢?主要是希尔排序高效实现的步长不要在链表中实现,链表只能一个一个走,不能跳,所以不太合适
- 链表的排序的关键还是理解好基本功能的增删然后懂得各种排序的思想
- 新概念,链表桶。其实就是一个块
- 双指针。快慢指针:快的确定目标,慢的实现具体操作;
- 环:我之前的错误理解(满的超过了一半了,快的还不到链尾就是有环)正确理解是,两个速度不一样的人在环形跑到里跑步,总会有遇到的时候
做题: - 反转链表:第一思路是新建链表尾插法(但是空间浪费)可以用双指针来实现
temp=cur->next````cur->next=pre;pre=cur;cur=temp
在学习的过程中主要存在的问题: - 对指针的理解非常不到位,从而导致
cur.next
、cur
之间的使用非常混乱,非常容易出错 - 对一些边界的理解比如:index-1,index之间到底用哪一个
小收获: 这是第二次正式学习数据结构了,相比于去年,我整个的学习方法主要是通过直接看标题知道代码的主要作用后,直接一边理解一边打代码,打完之后在重新尝试串起来,看看能不能体会其中的想法,接下来就是把代码复制给GPT,让他逐句解释,我再重新理解。相比于之前喜欢抄知识点,这次能够更多地接触代码,印象深一点吧。