数据结构知识点+例题深化总结
文章平均质量分 71
aig_m_l
这个作者很懒,什么都没留下…
展开
-
栈和队列知识点+例题
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素的操作。遵守的原则(类似于弹夹):栈的插入操作叫做进栈/入栈/压栈,:栈的删除操作叫做出栈,那如何实现栈呢?经过比较,数组栈是最优解,(链式的扩容会很久才会扩容一下)由于top的位置意义不同,我们分为两种解决方案。原创 2023-11-20 15:55:10 · 111 阅读 · 0 评论 -
双向链表的知识点+例题
当然,在这个代码中,我们要考虑如果只有head的唯一一个节点,那我们可以检查一下,如果head->next==head,则就不尾删。我们学完了顺序表和链表,为了方便学习,我们来比较一下两种表吧~在这个代码中,如果pos是哨兵位,那么此代码相当于尾插。好啦~我们的知识分享就到这里了~以上就是双向链表的知识点啦~10在pos位置前面插入。让我们画个图就理解了。原创 2023-11-17 15:08:14 · 166 阅读 · 7 评论 -
链表的知识点+例题总结
首先我们要先设置三个指针,分别是prev(指针的前一个节点),cur(指针当前节点),next(当前节点的下一个节点),当cur不等于NULL时,有两种情况,一个是cur等于重复的值val,此时我们要将prev->cur,然后释放掉空间,最后将prev->next=next;第二种情况是,若cur不等于重复的值val,此时我们要将prev->cur,cur=cur->next。当我们释放掉一个空间,会出现野指针的情况,因此,为了解决野指针的问题,我们设置两个指针,一个是prev,一个是tail;原创 2023-11-12 17:56:28 · 124 阅读 · 12 评论 -
算法的时间复杂度和空间复杂度
时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量的描述了算法的运行时间,一般来说,算法中的基本操作的执行次数,为算法的时间复杂度第一题:两套for循环+k有2*N次循环+while循环中的M的10次,所以O(N)=N*N+10+2N(准确的)相信大家都理解了上面的代码,让我们再看看下面的代码吧(会越来越有挑战性哦)第二题:eg:如果不确定 M和N的关系,那就把未知数都带上,答案最好写O(M+N)第三题。原创 2023-11-01 17:53:29 · 38 阅读 · 0 评论 -
顺序表知识+例题总结
顺序表是用一段物理地址连续的存储单元数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删改查。原创 2023-11-04 20:11:49 · 100 阅读 · 7 评论