自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FeelUOwn音乐播放器的一点点研究

软件作者说:FeelUOwn 使用 Python 3 进行开发,目前默认使用 mpv 作为其播放引擎, 基于 PyQt5 构建 GUI。

2022-06-09 23:28:31 661

原创 数据结构复习--查找表

静态/动态:静态查找表仅查找,动态可能会有插入元素等操作平均查找长度(ASL):平均比较次数静态查找表1. 顺序表逐个遍历2. 有序表二分查找斐波那契查找如果表长m=Fn+1−1m=F_{n+1}-1m=Fn+1​−1则可以把表分为两段加一点:长为Fn−1F_n-1Fn​−1的一段、arr[Fn]arr[F_n]arr[Fn​]、长为Fn−1−1F_{n-1}-1Fn−1​−1的一段这样获得一个固定比例的索引来查找,索引只用加减法这方面比二分查找的乘除运算快插..

2022-01-14 11:17:05 262

原创 二叉树遍历的非递归实现

复习数据结构的过程中,觉得二叉树前中后序遍历的非递归实现还是不太好想的,所以结合老师给出的思想,整理了一下自己的思路,记在这里,留日后翻看分析递归实际就是栈的先进后出的性质,所以用栈来实现非递归算法。递归回溯的时候会重新获得当前状态的全部信息,但是非递归实现不会自然有这些,难点就是保存需要的信息。先序遍历对于任意节点,只要访问之后先后入栈其非空的右、左孩子即可中序遍历访问一个节点之前,其左子树的节点已经全部被访问过。因此根据栈先进后出的特性,入栈一个节点之后,要入栈其左孩子.

2022-01-12 23:04:52 238

原创 uva 548 利用中序与后序遍历还原二叉树

uva 548给出一棵树的中序与后序遍历结果,其中每个节点的值不重复,求根节点到叶子节点的最短权和(路径上所有节点的权相加)对应的叶子节点。如果存在多个,则输出叶子权值最小的那个。后序遍历:左子树后序遍历-右子树后序遍历-树的根节点,直接得到根节点中序遍历:左子树中序遍历-根节点-右子树中序遍历,在掌握根节点的位置和树的中序遍历结果时,可以求出左右子树的节点数同时利用notleaf做标记:已经判断有子树的,标true。这个数组的首尾封住,可以避免单独判断出界问题遍历一个树的步骤:给出其后

2021-10-27 09:16:30 133

原创 uva122 二叉树层序遍历/bfs

uva 122题目大意:给出一组孤立节点,输出层序遍历的结果,如果路径不完整,输出“not complete"如果用顺序编号的方法,思路是利用编号的2倍关系跳转,不过数组很容易溢出,或者说根本开不了如此巨大的数组所以利用二叉树模拟。主要需要实现:树的建立:在读取输入时建立,对于跳跃的节点,就需要利用able为false的中间节点链接遍历:层序遍历是广度优先,可以利用队列实现。最初push root进队列,此后每次取出一个节点,判断该节点的able,可以的话依次在队列尾插入该节点的左右孩子(

2021-10-25 22:47:22 117

原创 Box in line 链表不是直白的可变数组

uva 12657最开始在rverse = !rverser这里出现了问题,写成了rverse = ~rverse,这样写rverse的值是不发生变化的整体思路很清晰,自己做链表。一开始就知道不能反转,做了标记rverse,但是查找直接用O(N),必然超时。最开始也试着想了下存储位置,但是没想透——以为每次变化都会波及前边的。实际上存储每一个的指针,是很方便的。所以有优化的思路还是要想清晰一些做法太过麻烦耗资源,不断申请/销毁内存,函数调用等都会增加负担书上的亮点需要学习统

2021-09-13 20:55:58 97

原创 只需要链表的思想

uva 11988[跳到行首输入,]跳到行尾输入,无非就是模拟链表插入。但是不必使用或模拟链表数据结构,只应用思想,提高效率,认清本质要做的其实只需改变读取源输入的顺序s是源输入,下标从1开始,nxt是存储读取顺序的表,下标从0开始读取顺序是,从nxt[0]获得第一个下标i, 而nxt[i]表示第i处的下一个索引,因此不断循环,直到nxt[i_last]是0所以初始化nxt[0] = 0,表示还没有数据,curr = last = 0,curr表示最后一个维护好的节点,接下来在curr后

2021-09-11 11:45:51 68

原创 栈的应用..

uva 442运算顺序不是很清晰,但是用栈来处理,就变得明了核心步骤是,把矩阵按运算顺序压入栈中,如果遇到)就从栈中取出两个运算,将结果压回,这样就集成了括号带来的运算顺序。#include <iostream>#include <map>#include <stack>#include <fstream>#include <string>#define TEST 0using namespace std;typede

2021-09-11 10:01:19 68

原创 uva514 栈的应用

uva514开始以为是旋转某一截,就用奇怪的方法,以致后边发现思路错了甚至改不会来但是进车站的车厢正好满足后进先出,应该考虑栈在B轨运行的车箱,无非就是从A轨按顺序取,或者在栈顶取,而A轨的车厢,如果不能与B轨道匹配,就说明他进栈了这样考虑就会清晰明了#include <iostream>#include <fstream>#include <stack>using namespace std;#define TEST 1int main(

2021-09-08 08:48:21 101

原创 uva210 循环链表+队列+索引=>模拟

uva210程序循环进行 : 循环链表Lock未遂的程序依次抓走 : 队列数据结构刚好看到循环链表,感觉写好了插入删除很方便#include <iostream>#include <fstream>#include <queue>#include <vector>#include <string>#include <cstring>using namespace std;struct Node;#defi

2021-09-07 22:45:33 125

原创 主要是索引

uva 230#include <iostream>#include <fstream>#include <algorithm>#include <set>#include <string>#include <map>#include <cstring>#define TEST 1#define maxn 100using namespace std;struct Book{ Book(

2021-09-03 18:18:43 64

原创 关注的数据作标记

uva 12100#include <iostream>#include <fstream>#include <algorithm>#include <queue>#define TEST 0using namespace std;int main(){ ofstream ofs; if (TEST) { ofs.open("/home/lixiaoqi/Documents/Code/C++/1.

2021-09-03 16:46:53 61

原创 Class

零碎类的关键字:class, struct可以只是声明而不定义(不完全类型),只能用作指针或形参等(依旧不可使用)。这也是为什么可以在类中定义自己的指针。const加在形参表之后,且必须同时出现在声明与定义中Lixiaoqi::show() const {//do sth.};初始化 / 构造构造函数直接初始化Lixiaoqi::lixiaoqi() a(1),b(2.0)…{//do sth.};可以指定初始化 className varName = { ... } 要

2021-04-24 22:59:56 164

原创 2021-02-15

标题^#即可,#多,字小代码用``````夹住即可,在第一个```后接代码名称可提供高亮!例int main (){ printf("Hello Markdown!");}正文中代码用`与`隔开即可列表有序列表用 “[digit]. ”无序列表用 “- ”加粗/倾斜加粗用** 和 **or __ 和 __倾斜用* 和 *or _ 和 _倾斜+加粗___ 和 ___or *** 和 ***####引用使用 ’ &gt

2021-02-15 22:08:40 55

空空如也

空空如也

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

TA关注的人

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