![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
xw的数据结构
文章平均质量分 81
我是晓伍
此人很懒
展开
-
LeetCode [142. 环形链表 II]
本题来源于这里讲解部分首先使用快慢指针去遍历这个链表,第一个指针叫slow,第二个指针叫fast,他们都从head处开始,fast每次走两个next,slow每次走一个next,如果fast走到了NULL,那么这个链表是一定没有环的,反之,如果fast因为在环中套圈,那么当两个指针相遇时,说明了他们套圈了,链表也就有环了,也就是slow == fast时说明链表有环。下面我们来思考为什么fast比slow走快一个单位一定会追上slow与slow相遇,而不是直接略过slow,。首先,因为是快走一个单位原创 2021-10-25 19:19:48 · 126 阅读 · 0 评论 -
二叉树三种遍历(先序,中序,后序)----超详细
介绍二叉树的遍历有许多种,例如深度优先搜索,广度优先搜索,在这里,我只介绍先序,中序,后序三种的递归与非递归遍历方法。原创 2021-07-29 16:07:55 · 3182 阅读 · 0 评论 -
搞定kmp算法
介绍在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置,此算法利用这一特性以避免重新检查先前匹配的字符。以上都是屁话,在c语言中,实现此功能的库函数叫做strstr,它被放在了string.h头文件中,这个函数的功能,用白话说就是给定一个主字符串和副字符串,之后再主字符串中找到副字符串。例如:字符串s = abcdefgg;字符串t = cdef;多余的原创 2021-06-18 00:44:07 · 419 阅读 · 5 评论 -
数据结构--单链表的实现(c语言实现)
C语言中动态链表的实现原创 2021-05-31 00:25:31 · 267 阅读 · 3 评论 -
leetcode刷题day4
本题来源于206. 反转链表题目如下:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000思路我的思路是从A开始,通过改变指向来实现翻转:首先,要把这个链表倒过来,我们需要原创 2021-05-26 23:47:00 · 160 阅读 · 1 评论 -
数据结构--顺序表的实现(c语言实现)
最近终于开始学数据结构了,开个坑记录一下首先,顺序表是一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:1.静态顺序表:使用定长数组存储。2.动态顺序表:使用动态开辟的数组存储。我实现的就是一个动态顺序表。首先要思考这个鬼东西要能做什么,增删查改这肯定是必须的了,其他的接口我依次列出://初始化void SeqListInit(SL *ps);//破坏顺序表void SeqListDestory(SL *ps)原创 2021-05-25 19:41:31 · 2665 阅读 · 0 评论