数据结构与算法
文章平均质量分 81
主要介绍线性表,链表,二叉树等的代码具体实现,还有排序算法的实现和应用,以及一些数据结构和算法的题目。
new出新对象
星光不负赶路人,时光不负有心人。
展开
-
【数据结构】栈和队列的实现
栈:一种特殊的线性表,。,另一端称为栈底。栈中的元素遵循的原则。栈的叫做进栈/压栈/入栈,在栈顶进行操作。栈的叫做出栈,出栈操作同样在栈顶进行。原创 2022-12-22 11:05:43 · 718 阅读 · 0 评论 -
【数据结构】线性表 _顺序表 &链表的增删查改 _[细节分析+代码实现]
我们实现的链表存储的数据是int类型,所以对int进行重命名,如果存储的数据不是int类型,把int改成其他的类型即可。当容量为100时,满了之后扩容为200,但是我们只需要再插入5个数据,后面就没有数据插入了,就浪费了95个数据空间。我们在这里主要学习的是带头双向循环链表,虽然它看起来复杂,但是实现起来并不复杂,而且相比于其他类型有很大的优势。还有一个需要去注意的点是pos是数组下标,是有范围的,一定要注意数组的越界问题。如果传的是结构体,那么形参是实参的一份临时拷贝,形参的改变不会影响实参。原创 2022-11-20 11:57:06 · 1148 阅读 · 35 评论 -
【数据结构】计数排序 _gif图解 _代码实现 _[非比较排序]
计数排序是一个非比较的,它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。这是一种,而且当O(k)>O(nlog(n))的时候其效率反而不如归并排序、快排、堆排。原创 2022-11-05 23:16:19 · 88 阅读 · 0 评论 -
【数据结构】二叉搜索树 - 优化遍历搜索 _ [进阶篇_复习专用]
二叉搜索树:它或者是一棵空树,或者是具有下列性质的二叉树。若它的左子树不空,则左子树上所有结点的值均小于它根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;【进阶篇_ 复习专用】原创 2022-10-24 20:42:59 · 793 阅读 · 19 评论 -
【数据结构】算法时间和空间复杂度的定义和计算方法
1.2算法的复杂度算法在编写成可执行程序之后,运行时需要耗费时间资源和空间资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,也就是时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎啊,但是经过计算机行业的迅速发张,计算机的存储容量已经达到了很高的程度。所以我们现在已经不需要特别关注一个算法的空间复杂度了。2.时间复杂度时间复杂度的定义:在计算机科学中,原创 2022-10-04 08:30:00 · 1485 阅读 · 21 评论