C语言单链表求环,并返回环的起始节点 is a project mainly written in , based on the .若链表中存在环,找出其中的环所在的节点,否则,返回NULL 在没有C++ set容器的优势前提下,我们对这样的环型的寻找以及定位可以利用快慢指针来实现。 有环的存在,类似与操场跑圈,必然存在快慢之分。有了快慢,就一定会有交点。反之,有了交点,就一定存在环。 实现过程如下: slow指针移动一次,fast指针移动两次,当fast指...
C语言的单链表求交点 is a project mainly written in , based on the .单链表求交点,问题如下: 使用o(1)的空间复杂度,求两个链表相交的时候的交点,这个思想就类似于使用o(1)的空间复杂度和o(n)的时间复杂度来求链表的第k个节点。 过程如下: 获取两个链表的长度将较长的链表移动和短链表长度差值的位置移动后两个链表长度一样,然后一起移动,这样就知道节点相等的时候链表相交 算法实现如下:get...
C语言的有序单链表合并 is a project mainly written in , based on the .已知两个已排序链表头节点指针headA与headB,将这两个链表合并,合并后仍为 有序的,返回合并后的头节点。 主要步骤如下: 创建一个临时的头节点,头节点每次指向headA 或者 headB较小的节点当headA->data 比headB->data小的时候,headA的当前节点加入临时头节点,同时headA指针向后移动;否则h...
C语言的单链表分割 is a project mainly written in , based on the .已知链表头指针head与数值x,将所有小于x的节点放在大于或等于x 的节点前,且保持这些节点的原来的相对位置。 这个过程有点类似于快速排序,寻找一个阈值,比该阈值小的放左边,比该阈值大的放右边。只是由数组遍历变为来链表遍历,操作变成了指针的指向。 具体步骤如下: 创建一个less_ptr,负责对less端的链表进行维护创建一个m...
C++的多个有序链表合并 is a project mainly written in , based on the .已知k个已排序链表头节点指针,将这k个链表合并,合并后仍为有序的 ,返回合并后的头节点 如下三个链表: 合并后的结果如下: 方法一(STL sort算法进行排序): 先将输入的排序链表插入一个迭代器中,vector数组中国呢直接对数组中的链表节点进行按值排序即可 实现算法如下,最终实现源码见文末: bool cmp(Dat...
S-sar命令(System Activity Reporter系统活动情况报告) is a project mainly written in , based on the .文章目录前言语法格式查看CPU使用情况保存统计结果到文件中查看磁盘平均负载和队列长度查看内存使用情况查看系统swap分区情况查看IO和传递速率查看磁盘使用情况输出inode、文件和其他内核表的信息统计网络信息查看网络接口信息网络设备通信失败信息统计socket连接信息TCP连接的统计使用总结 前言 sar(System Ac...
C++ algorithm的sort函数总结 is a project mainly written in , based on the .sort函数 sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变partial_sort 对给定区间部分元素排序partial_sort_copy 对给定区间部分元素排序并复制partition 使得符合某个条件的...
S-stat 查看文件或者文件系统的状态信息 is a project mainly written in , based on the .命令用法 stat [OPTION]... FILE... -L 查看链接文件-f 查看文件系统信息,而非文件信息-c --format=%a 支持使用格式化字符串输出结果,支持 , 等转义字符,详细格式化情况使用man stat查看--printf=FORMAT 支持格式化输出-t 以简洁的方式输出结果 常用命令 st...
C语言的单链表实现队列 is a project mainly written in , based on the .队列是一种FIFO(先入先出)的数据结构 C++的STL std::queue q; 相关的队列操作,包括 q.empty() 判读队列是否为空 q.front() 返回队列的首元素 q.back() 返回队列的末尾元素 q.pop() 弹出队列的头部 q.push(x) 将x添加至队列 q.size() 返回队列的大小 本文使...
C语言的双向链表头插法和尾插法,指定节点删除 is a project mainly written in , based on the .文章目录前言头插法尾插法删除节点测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点。 关于构造双向链表的过程我们常见的有两种方法,和单链表一样:头插法和尾插法。 头插法:字面意思也是很好理解,每次插入的元素在上一个节点之前 尾插法:字面意思也表达出了每次的元素插入会在上一...
C++的STL队列实现栈 is a project mainly written in , based on the .使用C++的队列STL实现一个栈的数据结构 实现以下四个函数: 1.push(x) : 将元素x压入栈中 2.pop() : 弹出(移除)栈顶元素 3.top() : 返回栈顶元素 4.empty() : 判断栈是否是空 队列的数据结构为先入先出,栈的数据结构为先入后出; 即队列的元素顺序与栈中元素的顺序是相反的,所以只需要保证后面...
C++的STL栈实现获取栈中最小元素的成员 is a project mainly written in , based on the .实现一个获取栈中最小数据成员的函数,该栈支持如下操作: 1.push(x) : 将元素x压入栈中 2.pop() : 弹出(移除)栈顶元素 3.top() : 返回栈顶元素 4.getMin() : 返回栈内最小元素 要求时间复杂度为O(1) 这里关键是如何获取最小值,栈中的元素不断增加,且要达到O(1)常数级的时间复杂度,即创建好...
C++的STL栈实现队列 is a project mainly written in , based on the .使用内部存储结构为栈的方法实现一个队列,要求实现该队列的如下方法: 1.push(x) : 将元素x压入队列中 2.pop() : 弹出(移除)队列头部元素 3.peek() : 返回队列头部元素(即为front) 4.empty() : 判断队列是否是空 栈的数据结构为先入后出,队列的数据结构为先入先出 使用栈来实现队列,同样想要...
F-free 查看系统中空闲和使用的内存 is a project mainly written in , based on the .文章目录前言语法格式以指定单位显示内存占用情况打印所有内存占用(RAM + SWAP)打印间隔以及次数打印所有的列(将buff和cache分开)free各个空间含义swap交换空间cache页高速缓存free 与 available 前言 free 支持查看空闲的和已使用的物理内存和交换分区所占用的系统内存情况,改信息是通过...
C++的STL 栈实现 判断栈的出栈顺序是否合理 is a project mainly written in , based on the .有这样的题目: 已知从1至n的数字序列,按顺序入栈,每个数字入栈后即可出栈, 也可在栈中停留,等待后面的数字入栈出栈后,该数字再出栈,求该数字序列的出栈序列是否合法? 类似如下: 已知栈的出栈序列为:3 2 5 4 1,判断该栈的出栈序列是否合法 过程如下: 第一次1-5顺序入栈:1,2,3 第二次 3 出栈:1,2 第三次 2 出...
S-sed(stream editor) 文本填充和编辑 基本使用 is a project mainly written in , based on the .文章目录前言语法格式sed 操作地址sed子命令sed正则表达式sed使用实例打印命令 p删除命令 d替换命令 s指定操作地址的范围 逗号 ,多重编辑命令 e下行插入命令 a上行插入命令 i修改命令 c获取下一行命令 n转换命令 y退出命令 q总结 前言 sed是一个“非交互”式的字符流编辑器,能够很好得完成对多个文件的一系...
C++的STL 栈 实现四则运算 is a project mainly written in , based on the .使用栈实现四则运算,支持+,-,*,/,(,) 输入为字符串,输出为计算好的数值,如不符合四则运算的规定,则异常退出 这个实现借用了栈以及字符处理状态机的思想: 维护两个栈:一个用于数值,另一个用于存放计算符号字符状态机用于遍历输入的字符串过程中进行对应数值处理和计算符号处理的状态转换 在第一个思想中:符号栈中存在优先级,即*和...
C++的 STL堆 实现获取中位数 is a project mainly written in , based on the .前言 堆数据结构 使用的是优先级队列实现,创建堆的时候需要指定堆中元素的排列方式,即最大堆或者最小堆 最大堆即 堆顶元素为堆中最大的元素 最小堆即 堆顶元素为堆中最小堆元素 如下为一个最大堆 中位数: 一组数排序后,如果元素个数如下 奇数个数n:(int) n/2 的数 偶数个数n: (int) n/2 和(int) n/2...
C++的STL 堆 实现获取数组堆第K大的数 is a project mainly written in , based on the .前言 堆数据结构 使用的是优先级队列实现,创建堆的时候需要指定堆中元素的排列方式,即最大堆或者最小堆 最大堆即 堆顶元素为堆中最大的元素 最小堆即 堆顶元素为堆中最小堆元素 如下为一个最大堆 回到文章标题,获取一个数组中第K大的数,要求时间复杂度是O(n),即一次遍历即可获取到该值。 所以普通的先排序,再获取第k个数值的方...
贪心:assign cookies分糖果 is a project mainly written in , based on the .贪心算法的核心: 遵循某种规律,使用最少的资源来完成目标 所以在了解贪心算法的时候需要明确两点 寻找共有的规律每一步的迭代使用最优的策略(消耗最少的资源) 问题如下: 已知一些孩子和一些糖果,每个孩子有需求因子g,每个糖果有大小s,当 某个糖果的大小s >= 某个孩子的需求因子g时,代表该糖果可以满足该孩子;求使用这 些糖果,最...