前缀、中缀、后缀表达式
利用STL中stack,解析前、后缀表达式,并将中缀表达式转换到相应的前、后缀表达式。
去除停用词.c
使用C语言,根据停用词表,对指定文件的内容扫描,从而删除文件中出现的停用词。
大整数的加、减、乘、除
使用C++语言,实现大整数的加、减、乘、除。使用到了标准库的string类型。关键是逻辑上的处理。
十六进制数转化为八进制数
把位数在10W以内的十六进制数成功转化为八进制数,思想是:先转化为2进制数,再把2进制数转换为8进制数。
函数模板模拟printf
利用C++中的函数模板简易模拟printf()函数。设计的知识点包括函数模板、可变参数等。
外排序-多路归并
外排序问题的出现,主要是因为内存不够。当需要排序的数据量过多,以至于无法一次性把所有的数据都放入内存,这导致了外排序问题的出现。解决大数据量排序的方法是:先分块排序,后进行块合并。
最小生成树:Prim算法
使用Prim算法求解图的最小生成树,其中图用邻接矩阵存储。
图:FLoyd算法
使用Floyd算法,求解点对之间的最短距离。图结构使用邻接矩阵存储。
求解单源最短路径:Dijkstara算法
使用Dijkstra算法求解单源最短路径问题,不仅求出最短路径,同时给出最短路径序列。
有向图的拓扑排序
对于有向图进行拓扑排序,图使用邻接矩阵的存储结构。
图的遍历:深度优先、广度优先
在邻接矩阵的存储结构下,实现图的深度优先遍历和广度优先遍历。
图的实现:邻接表
使用邻接表实现图结构,无向的、有向的、无权的和有权的都可支持。
图的实现:邻接矩阵
使用邻接矩阵实现图结构,无论是有向图、无向图、带权图还是无权图,都可以指定。
模式匹配:KMP算法
使用KMP算法实现模式匹配,包括next数组的求解,kmp算法的实现。关键代码有详细注释。
哈夫曼树&哈弗曼编码
哈夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。用c++实现构造哈夫曼树、哈夫曼编码。
桶排序(二维数组)
桶排序(Bucket Sort)是对基数排序的一个变种。在排序过程中没有用到计数数组,而是用不同的桶来暂时存储关键字。使用二维数组模拟桶。
桶排序(静态队列)
桶排序(Bucket Sort)是对基数排序的一个变种。在排序过程中没有用到计数数组,而是用不同的桶来暂时存储关键字。使用静态队列模拟桶,实现桶排序。
二叉堆:最大堆
使用c++实现最大堆。提供常见操作,如插入、删除、堆化数组、堆排序、上下调整、向下调整。
二叉堆:最小堆
使用c++实现最小堆。提供常见操作,如堆化数组,插入,删除,堆排序,遍历堆。
二叉搜索树的c++实现
使用二叉链表和c++来实现二叉搜索树,提供插入、删除、遍历、求最小节点、最大最节点等操作。
二叉树的二叉链表实现
使用二叉链表实现二叉树,提供常见的操作:各种遍历,求树高,节点数。
一元多项式的加法、减法、乘法
使用链表来实现单元多项式的加法、减法、乘法。其中,加法是其它运算的基础,减法:poly1-poly2=poly1+(-poly2),乘法:poly1*poly2,可用poly1乘以poly2的每一项,相加其乘积结果。
队列的应用:优先级队列
使用顺序存储实现优先级队列,展示优先级队列和普通队列的区别之处。
队列的实现:链式队列
用链表的形式实现队列,提供常见操作,出队、入队……
队列的实现:顺序队列
使用顺序存储的方式实现队列,提供队列的常见操作。
栈的实现:链式栈
使用链式结构来实现栈,提供常见的栈操作,push() pop() top() empty() size()
栈结构解析算术表达式
使用栈结构解析算术表达式,加、减、乘、除、求余,并支持多位数运算
用栈解析算术表达式
用栈解析算术表达式,并且做到了多位数运算,运算包括加、减、乘、除、求余
栈的实现顺序栈
栈的顺序栈形式,简易的实现,push() pop() top() size() empty()
约瑟夫问题的静态链解法
这是约瑟夫问题的静态链解法,代码量少,易理解,是一种很好的思路
单向循环链表解决约瑟夫问题
用单向循环链表解决约瑟夫问题。使用c++语言,结构体,链表的操作。
线性表-单链表
单链表的类定义和类实现,常见操作,插入、删除。
查找数组中第k大的数
给定一数组,查找数组中第k大的数。代码中借助快速排序中的partition方法来实现。
字符串转化为整数
把一个字符串转化为相应的整数。特别注意符号与溢出的问题。
单双精度浮点数解析.c
对于计算机中常见的浮点数存储格式进行分析,编程提取float和double中的阶码好尾码。
printf的类模板实现.cpp
使用C++的类模板机制来简单实现库函数printf。
LeetCode--Linked List.cpp
文件中包含了LeetCode中Tag为LinkedList的题目参考代码。
LeetCode-Linked List.cpp
这是LeetCode中Linked List所有题目的参考代码。(截止到目前为止:2015年12月14日)。
在同一段内存上存储不同类型的数据
使用malloc动态分配一段内存,在该段内存的首地址处的四字节下记录不同数据块的个数,使用合适的方式存入数据,并相应读取。