自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++实现双端队列(数组模拟)【每一步详细深入讲解,代码清晰、简单、易懂】

如左图,左指针已经到了左边界,但队列还没满按理说应该可以左入队,再次入队之后左指针应该到达最右边,这样才能实现继续入队,现在只要实现左指针到达左边界时再入队,指针移动到最右边的操作。经过思考,发现一个小于B的数A模B依然等于A,而如果A等于B,那A模B就等于0,-1+B模B等于B-1,而A加上任意个B 再模B依然等于A。但是,这样怎么看怎么别扭,左边和右边都执行了入队,但左指针位置无元素,右指针位置却有,而且左右入队操作不同,不太符合通用原则。发现,左边入队是正常,但,右边入队时入队的值覆盖了之前的值!

2023-01-10 20:49:23 3633 1

原创 C++实现栈(链表模拟)【每一步详细深入讲解,代码清晰、简单、易懂】

链表则不同,每次入栈相当于在后面多链上一个节点,而出栈则是把最后一个节点设为。由于栈是一种较为简单的数据结构,用链表实现栈,逻辑上和数组差不多。数组实现栈时,每次入栈就相当于将数组中下一个位置填值。由于我们是用链表模拟栈,因此不会有栈满的情况。根据上面的分析,可以得出,我们需要一下数据。内置的在尾部插入函数,并递增栈顶迭代器。先判断时候为空,再执行操作。

2022-12-17 19:30:27 1421

原创 C++实现循环队列(数组模拟)【保姆级讲解】

看起来还不错,但仔细观察出队到队空时,队列里面没有数了,也就是队空了,可以继续加数据,但是,表示队列头尾的变量已经到了数组的最右边的下一个索引,已经没办法再往右了,同时数组还是空的。这里可以将数组的一个格子空出来,当数组还有一个格子的时候,就当作队列已经满了。出队的话,可以利用和入队类似的办法,但数组无法删除元素,但我们可以用一个数组索引的变量表示队头的位置,每次出队只需把这个索引向递增即可。这样看起来可以,但是有一个问题,我们需要时刻记得我们入队了几次,否则就无法根据索引入队了。没有到达数组末尾的时候,

2022-12-10 10:32:31 3387 2

原创 C++实现栈(数组模拟)【每一步详细深入讲解,代码清晰、简单、易懂】

栈就像一个子弹匣,第一粒按进去的子弹最后一个被击发,而最后一个子弹第一个被击发。这就是栈的特点:先进后出,后进先出。入栈与出栈过程:栈需要入栈以及出栈操作;3、入栈操作利用数组模拟栈,每次入栈从数组后面追加,数组开头是栈底,数组末尾为栈顶。代码逻辑:4、出栈操作代码逻辑:判断栈是否为空不空:空:

2022-12-05 20:41:57 3112

原创 C++实现双链表【每一步详细深入讲解,代码清晰、简单、易懂】

双链表节点由存储的数据、指向前一个元素的指针和指向后一个元素的指针构成,因此双联表节点的代码也很容易得到,如下:双链表和单链表类似,也需要添加、删除和查找。1、插入操作插入的情况说明:插入每次都在第一个位置插入,也就是在伪头节点(不含元素)后插入。插入节点的过程:插入的代码逻辑:2、删除操作将目标节点的下一个节点的指针指向目标节点的前一个节点(目标节点下一个节点不存在则省略)将目标节点的前一个节点的指针指向目标节点的下一个节点代码逻辑:3、查找操作不同于单链表,双链表查找直接返回目

2022-12-04 22:44:25 2467

原创 C++实现单链表【每一步详细深入讲解,代码清晰、简单、易懂】

例如:我们需要在伪头节点(不包含数据)和含有1的节点之间插入一个节点,发现,只需要改变dummy的指针和需要插入的指针即可。通过对插入和删除的讨论,我们了解到,插入调用find函数时,并不需要操作其返回值,所以,返回值具体是该元素的节点还是其前面的节点并没有影响;,而第一个节点的前一个节点是dummy,这也是为什么我们需要dummy这个伪头节点。,因此,删除操作时我们必须得到需要删除节点的前一个节点,因此。先将要添加的元素的指针指向dummy节点的后一个节点。将要添加节点的指针指向之前的下一个节点。

2022-12-03 00:22:06 4448

原创 利用easyx实现C++飞机大战【C++小项目】

简单实用、代码清晰

2022-07-14 10:27:58 2063

原创 计算机网络笔记(油管FreeCodeCamp)Computer Networking

modem: 将从计算机接收的电子信号转为电话线传送的模拟信号传出,或将电话线的模拟信号转为电子信号传入。hub: 将从某一端口接收到的信号发送到其它所有端口。switch: 利用其中的ASIC板通过MAC地址了解某个设备连在它那个端口上WAP(wireless access point): 将无线部分和有线部分连接,与无线路由器不同,WAP不具有路由功能MLS(Multilayer switch) :具有普通switch功能的同时还能与非本地装置交流和传输数据router:连接不同网络,选择最佳连接某个网

2022-06-04 18:33:58 1729

原创 Algorithms | L - 3 | Time Analysis of Recursive Program【递归算法时间复杂度计算】

多种方法实现递归算法时间复杂度计算

2022-03-31 13:59:02 231

原创 Algorithms lecture 2 -- Time complexity Analysis of iterative programs【迭代算法的时间复杂度计算】

具体代码示范时间复杂度计算

2022-03-29 20:53:55 1094 1

原创 Algorithms Lecture 1 -- Introduction to asymptotic notations【渐进表示法】​​

油管Uncode印度小哥数据结构算法讲座

2022-03-29 14:17:54 155

空空如也

空空如也

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

TA关注的人

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