摘要:
之前写一个简单的输入节点值自动生成链表的测试程序,发现cin的输入控制好像在VC++6.0和VS2010中不一样,特此记录。 现在有以下代码: VC++6.0中输入数据结束使用ctrl+z后需要连续两次回车,而使用ctrl+d后只需要一次回车。结果图如下 VC++6.0使用ctrl+z VC++6. 阅读全文
摘要:
最近看一些算法题发现这些问题到最后落实到实现上都是编程基础的体现,包括对基本的for,if,else,while等语句的理解程度,还有对循环递归的理解。所以还是得回归最基本的算法,现在去学习那些高深复杂的DP,KMP,红黑树未免有点好高骛远。目前应该坚持基础,打好基础,毕竟不是CS科班出身。言归正传 阅读全文
摘要:
关于二叉查找树的建立,插入,遍历(记住二叉查找树的中序遍历是所有元素由大到小排序结果)等操作,博主“C小加”写的很详细了,我主要补充BST的删除操作。删除操作主要难在对左右子节点都非空的节点的删除操作,这里可以找到该节点右节点中的最小值,即右子节点中的最左子树。找到后和需要删除的节点交换data等数 阅读全文
摘要:
项目基本算法已经完成,甲方需要一个可以运行的demo。目前,程序能在自己的电脑上正常运行。移植到其他win7系统上,运行失败。 寻找各种解决办法,baidu找到两个办法: 1.使用静态链接的方法,这种生成的exe太大,放弃。 2.将对应需要的dll拷贝到exe的执行目录下,这种虽然文件多,但是易操作 阅读全文
摘要:
这是最基本的三种排序算法,比它效率高的还有归并排序,堆排序,快速排序等算法,作为一个IT民工应该好好掌握。 冒泡排序,选择排序和插入排序都有两层循环,时间复杂度均为O(n^2),下面逐一介绍: 冒泡排序: 1.外层循环,控制冒泡次数,起始从loop=1开始,结束标识是loop<length,循环le 阅读全文
摘要:
这是何海涛老师剑指offer上面第12题,这题首先注意不能使用整数int型作为操作对象,因为N很大时明显会溢出。这种大数据一般都是使用的字符串来表示。 直接法就是:1.针对字符串的加法,涉及循环进位及跳出判断。 2.对字符串的打印输出,注意打印01是否合法,否则需添加额外判断。 这题还有一个思路就是 阅读全文
摘要:
排序算法就像是数字信号里边的傅里叶变换一样基础,在此继续温习一遍。 阅读全文
摘要:
何海涛老师的《剑指offer》中的面试题6,觉着有难度,记录在此。 题目要求根据给出的前序遍历{1,2,4,7,3,5,6,8},中序遍历{4,7,2,1,5,3,8,6}重建它的二叉树,并且输出头指针。 首先必须知道前序遍历中序遍历的概念。在二叉树遍历中第一个总是根结点,但在中序遍历中根结点在中间 阅读全文
摘要:
Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 举个例子比较容易理解,74 / 5, 这里 5*2=10 < 10*2=20 阅读全文
摘要:
数据结构关于二叉树的遍历还有一种层序遍历,按层次依次输出元素。最上层最先输出,同层中最左最先输出,使用队列这一结构来实现: 外层循环是要获得当前队列中新的尾指针,而内层循环则是对新进队列的元素依次输出,并且按先后将结点对应的子树进入队列中。 阅读全文