学习与扩展
懒洋洋
这个作者很懒,什么都没留下…
展开
-
【数据结构】堆应用之TopK问题
【问题描述】:在堆的应用上,大致有这么两类问题:堆排序、topK。堆排序的问题之前讨论过了,现在说说TopK的问题,所谓topK即求一组元素中最大或最小的前K个元素。【解题思路】:如何求topK?将这一组元素排序。 用堆的方式解决。当这组数据大到一定程度时,如果先对这组数据进行排序,恐怕将他们全部加载到内存中都很难实现,在这里我们主要看看如何用堆来解决topK的问题。假定这组元...原创 2019-05-25 16:50:20 · 314 阅读 · 0 评论 -
【数据结构】二叉树链接结构基本操作
二叉树顺序存储的优缺点:顺序存储结构就是使用数组来存储,顺序结构操作比较简单,对于堆结构来说,适合使用顺序存储方式来解决。但数组只适合表示完全二叉树,对于一般的二叉树如果采用顺序存储方式会造成大量的空间浪费,这是我们不希望看到的。由此引出来二叉树的链式存储。并实现二叉树的以下操作:创建二叉树、拷贝二叉树、销毁二叉树、二叉树遍历(前序、中序、后续、层序)、获取二叉树中节点个数、获取二叉树...原创 2019-05-25 19:45:51 · 1029 阅读 · 0 评论 -
【数据结构】实现可控创建大堆或小堆
【问题描述】:前面我们实现了一个小堆的创建,及一些接口,但在实际应用中,我们并不清楚用户到底是要创建大堆还是小堆,这就要求我们的代码能够根据用户实际需要处理问题,而不是固定的只能处理单一问题。【解决思路】:我们知道创建大堆与小堆的区别在于比较堆中左右孩子时、比较孩子节点与双亲节点时,大堆取较大者,而小堆取较小者,然后继续后面的工作。我们可以创建一个函数指针变量,保存用户传递的比较堆中元素的方法...原创 2019-05-23 11:02:26 · 169 阅读 · 0 评论 -
【Linux】除了vim,还有哪些常用的编辑器
Linux下常用的文本编辑器有:vim、emacs、pico、nano、joe,他们各自有什么优缺点,他们之间又有哪些区别呢?下面我们来看看。Vim在所有的Linux distributions 上都会有的一套文本编辑器就是vi,而vim是vi最受欢迎的变种之一,除了继承了vi迅捷的编辑方式,vim的功能已经比原始的vi强大了太多。这也得益于它可以用vim基本无限的扩展。vim.org上已...原创 2019-05-18 13:38:37 · 6291 阅读 · 0 评论 -
【Linux】除了gcc,还有哪些常用的编译器
编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。下面介绍一下GCC、Clang、Visual S...原创 2019-05-18 15:48:54 · 4444 阅读 · 0 评论 -
【Linux】软件安装的几种方式(源码安装、RPM安装及yum安装)
源码安装直接以原始码透过编译来安装与升级; 直接以编译好的binary program来安装与升级。上面第一点很简单,就是直接以Tarball在自己的机器上进行侦测、编译、安装与设定等等动作来升级就是了,较麻烦。一个软件的Tarball是如何安装的?基本流程如下:将Tarball由厂商的网页下载下来; 将Tarball解开,产生很多的原始码档案; 开始以gcc进行原始码的编译(...原创 2019-05-18 17:44:31 · 445 阅读 · 0 评论 -
【Linux】实现一个minishell
完成一个minishell,其中可以实现简单的命令解释,以及重定向符号功能。首先实现命令解释的思路:获取用户输入内容 解析获取到的内容,得到命令及其参数 创建子进程 程序替换shell中处理外部命令是通过创建子进程后程序替换完成功能,还有一部分命令是内建命令,也就是shell自身实现的功能,比如cd。重定向实现思路:解析字符串,重定向符号前是命令及参数,后面是文件名称 ...原创 2019-06-05 21:45:02 · 970 阅读 · 0 评论 -
【Linux】编写add/sub/mul/div函数,并打包成动、静态库,分别使用
动态库与静态库的生成与使用:库文件实际上就是封装了一大堆已经编译完成的代码文件,通过链接这个库进而获取到相应函数实现。库的生成:编写函数:我们的目标是要将add/sub/mul/div函数打包成动态、静态库,并使用,首先我们先编写这四个函数,分别命名为child1.c、child2.c、child3.c以及child4.c,函数具体如下:然后编写相应的.h文件,完成后...原创 2019-06-11 10:50:17 · 664 阅读 · 0 评论