c++
文章平均质量分 86
湛蓝的海
这个作者很懒,什么都没留下…
展开
-
动态顺序表的增、删、查、改、逆置、排序
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。 线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。具体实现代码如下:#includeusing namespace std;template class SeqList{public: void _C原创 2016-06-13 15:37:41 · 423 阅读 · 0 评论 -
面试题之包含min函数的栈,两个链表的第一个公共节点
原创 2016-09-02 22:16:23 · 412 阅读 · 0 评论 -
面试题之对称的二叉树,层序遍历(每层节点打印成一行),平衡二叉树的判断
原创 2016-09-02 22:13:02 · 578 阅读 · 0 评论 -
面试题之两个栈实现一个队列,乘机数组问题
原创 2016-09-02 17:37:26 · 368 阅读 · 0 评论 -
面试题之二叉树镜像(递归,非递归),深度
原创 2016-09-02 17:12:03 · 408 阅读 · 0 评论 -
面试题之不用加减乘除四则运算符号的加法
原创 2016-09-02 17:06:14 · 557 阅读 · 0 评论 -
面试题之青蛙变态跳台阶问题
问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?解决思路: 关于本题,前提是n个台阶会有一次n阶的跳法。分析如下:f(1) = 1f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。f(3) = f(3-1) + f(3-2) + f(3-3)原创 2016-09-02 17:02:15 · 2425 阅读 · 0 评论 -
大数的四则运算
项目名称:《大数的四则运算》◊ 开发环境:windows、vs2013◊ 开发技术:string、c++ ◊ 项目描述:● 大数计算的底层采用string存储,将整形数据转换成字符串进行存储和运算 ● 运算的加减采用逐位加减,设置标记位,标记每一次加减的进位与借位,每 一次加,需要加上上一位的进位,每一次减,如果有借位加十并在下一次按位减时减一 ● 乘法用逐位相乘,结果错位原创 2016-08-01 21:02:44 · 482 阅读 · 0 评论 -
文件压缩
项目名称《文件压缩》开发环境:windows,vs2013所用到的技术:heap,哈夫曼树,哈夫曼编码,c++文件压缩项目的大致思路: 1.利用小堆进行构建哈夫曼树,然后利用哈夫曼树获得要压缩的每个字符的哈夫曼编码2.利用哈夫曼编码对源文件进行压缩,就是在压缩文件中按顺序存入各字符对应的哈夫曼编码,并编写配置文件3.利用配置文件获得各个字符及字符出现的次数,再次用小原创 2016-08-01 17:49:10 · 976 阅读 · 0 评论 -
面试题: 求N个数中前k个大的数(大数据)
解题思路:一般思路就是将N个数排序后,取前k个数就ok。但是如果N个数是几十亿个数,加载不到内存怎么办?这就需要另外一种思路了,那就是利用堆。具体的思路是:先建一个k个数的小堆,然后从k+1个数往后的值与堆顶元素比较,若此数比堆顶元素大,就将堆顶元素用这个数替换,然后重新调整堆,以此向后重复上述过程,直到将N个数比较完成,那么此时组成这个堆的k个元素就是前k个大的数。下边是具体实现的代码:原创 2016-06-22 21:50:15 · 9695 阅读 · 0 评论 -
堆排序
堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1]原创 2016-06-22 21:21:36 · 326 阅读 · 0 评论 -
二叉树的前、中、后序遍历(递归和非递归)、层序遍历、深度、叶子节点个数
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n原创 2016-06-22 20:16:05 · 417 阅读 · 0 评论 -
根据前序和中序的遍历序列重建二叉树
依据前序遍历序列和中序序列重构二叉树前序遍历:1,2,3,4,5,6,7中序遍历:3,2,4,1,6,5,7首先分析前序遍历和中序遍历序列的特点:前序遍历:遍历的第一个为根节点中序遍历:以根节点为分隔,根节点之前的全部为左子树,根节点之后的全部为右子树依据这两个性质,要重建二叉树的话,我们就是先找到根节点,然后再分别找出它的左右子树,然后再分别以左右孩子为根原创 2016-07-15 23:28:01 · 582 阅读 · 0 评论 -
单链表的增、删、查、改、逆置、排序
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以“结点的序列”表示线性表称作线性链表(单链表)单链表是链式存取的结构,为找第 i 个数据元素,必须先找到第 i-1 个数据原创 2016-06-13 16:49:53 · 389 阅读 · 0 评论 -
面试题之连续子数组的最大和问题,矩形覆盖问题
原创 2016-09-02 22:19:31 · 545 阅读 · 0 评论