![](https://img-blog.csdnimg.cn/direct/31e4778cd7c947408495ac02b1d54367.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构初阶学习
文章平均质量分 64
c++的学习过程
x 近 l
一个努力学习编程的小小大学生
展开
-
初阶数据结构.排序(2.快速排序)
(4)总体循环结束条件为,如果pi移动到ps相等的位置或者大于ps的位置则结束总循环,ps先走,ps所在元素如果大于keyi所在元素,则ps--,碰到小于的,则停下来,然后pi开始判断,如果pi所在元素小于keyi所在元素,则pi++,碰到大于的pi停下,最后将pi所在元素值与ps所在元素的值互换,然后进行下一次循环,同上。(5)最后将keyi所在的元素的值与pi所在元素的值互换,这样就构成keyi左边元素的值全部小于keyi所在元素的值,右边元素的值全部大于keyi所在元素的值。(本文只讲解一种版本)原创 2024-07-10 10:39:58 · 232 阅读 · 0 评论 -
初阶数据结构.排序(1.归并排序)
(6)这是当上述两个数组结束比较,其中肯定有一个未结束判断,如果是begin1未结束,则将begin1所在数组数组元素依次放入temp数组,相反将begin2未结束,将其中所在数组的元素依次放入temp数组中。(1)a为我们需要排序的数组,temp为我们创建的第三方数组,最后面会讲解其作用,begin为a数组的首个元素,end为a数组的位于末尾的元素。(2)判断a数组中的元素是否只有一个值,就返回,或者开始就判断该数组是否含有元素,如果没有就返回,大于两个元素,则进行下面的归并排序。原创 2024-07-09 21:20:21 · 275 阅读 · 0 评论 -
栈的初步认识及实现
我们需要使用typedef这个关键词来给int定义一个新的名字STDataType(当然可以取为其他的名字),这样是为了防止以后我们栈中插入的数据类型不一,可以直接对int进行更改(例如:int->char),以免进行大量的更改。显而易见上图,先要判断栈中数据是否为空,为空就进行报错,不为空则返回下标为top-1的数据。2.if (ps->top == ps->capacity),是用来判断栈中的数据是否和容量相等,相等的话,则需要进行扩容操作。栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。原创 2024-06-05 19:28:39 · 243 阅读 · 0 评论 -
链表部分OJ面试题讲解(c语言)(题目来自LeetCode)
直接cur->next指向copy,但因为我们需要找到下一个节点也就是节点2,所以我们需要先改后面那个也就是节点2(利用cur->next将节点2存起来),在这之前需要先将copy->next指向节点2(cur->next),再将cur->next指向copy,这样就很好地解决了找不到节点2了的问题。然后呢由上图可以看出2的random指向1,则我们复制链表的4的random指向2的random->next(也就是指向3),而这一步则是最为精华的一步解决了random的随机指向。原创 2024-05-18 10:36:21 · 734 阅读 · 0 评论