11 2014 档案
摘要:二叉树的前序非递归遍历: 前序遍历的顺序:根结点——左孩子——右孩子“。根据前序遍历访问结点的顺序可知:优先访问根结点,然后再分别访问左孩子和右孩子。对于任意结点来说,都可将其视为根结点,因此可直接访问,访问完之后,若其左孩子不为空,则按照相同规则访问左子树;当访问了左子树之后,再访问它的右子树。其...
阅读全文
摘要:一、二叉树的定义: 二叉树是每个结点最多有两个子树的有序树。二叉树常被用于实现二叉查找树。值得注意的是,二叉树不是树的特殊情形。在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于2。有根二叉树还要满足根结点的度不大于2。有了根结点后,每个顶点定义了唯一的根结点,和最多2个子结点。然而,没...
阅读全文
摘要:将数组中的大写字母与小写字母分开一:一个数组总存储有且in有大写和小写字母,编写一个函数对数组内的字母重新排列,让小写字母在所有大写字母之前。(相对顺序没有要求)【2012·中兴、2013·腾讯】使用快排的一次排列即可实现,代码如下: 1 #include 2 #include 3 #inclu...
阅读全文
摘要:排序系列之——快速排序快速排序是对冒泡排序的一种改进。基本思想是基于分治法:1、在待排序列表L[1···n]中任取一个元素pivot作为基准,通过一趟排序将待排序列表划分为独立的两部分L[1···k-1],L[k+1···n],使得L[1···k-1],中的所有元素都小于等于privot,L[k+1...
阅读全文
摘要:排序之——冒泡排序:基本思想:假设待排序表长为N,从后往前(或者从前往后)两两比较相邻元素的值,若为逆序(arr[i-1]>arr[i]),则交换他们,直到序列比较完。这时一趟冒泡。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #de...
阅读全文
摘要:一:写一个算法将栈里的元素升序排列。栈的实现未知,算法只能借助栈完成,可使用的函数有push、pop、top、empty等。思路:可借助另外一个栈来完成排序。1、从原始栈里依次弹出元素放入辅助栈;2、每当将要压入的元素是得辅助栈不是升序排列,就将辅助栈里面的元素重新压入原始栈中;3、直到辅助栈里面的...
阅读全文
摘要:本篇主要介绍快慢指针。快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2次,慢指针每次向前移动1次。一、快慢指针的经典应用:判断一个链表是否存在环思路:1、使用快慢指针,慢指针每次走一步,快指针每次走两步。2、快指针有两种状态:当链表无环时,快指针走到末...
阅读全文
摘要:一:特殊要求的结点删除问题描述:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个结点(不是第一个,也不是最后一个)。请将该节点从单链表中删除。思路:根据题意,似乎很难完成。其实我们可以将当前结点的后续结点的值域赋值给当前结点的值域。然后再删除当前结点的后续结点,即可完成”狸猫换太子“。代...
阅读全文
摘要:线性表的链式存储又称为链表(物理实现方式);链式存储是最常用的存储方式之一。它不仅可以用来表示线性表,而且可以用来表示各种非线性的数据结构;链表又可分为单链表、双链表、循环链表等。一:单链表所谓单链表是指数据结点是单向排列的。它包括两个域,一个信息域用于存放数据,一个指针域用于存放下个结点的地址;单...
阅读全文
摘要:生命周期,作用域的定义;说明全局变量、静态变量、局部变量、const变量的生命周期、作用域:生命周期:是一个变量存在的周期。作用域:是一个变量可以被引用的范围。最常见的如:{}、static修饰符等等。1)全局变量:作用域:全局作用域(只需要在一个源文件中定义,就可以作用于所有的源文件);生命周期:...
阅读全文
摘要:malloc/free与new/delete的区别:相同点:都可用于动态内存分配与释放;不同点:1):操作对象有所不同。malloc/free是C/C++语言的标准库函数,new/delete是C++的运算符。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,所以无法执行构造函...
阅读全文
摘要:本文包含字符串包含问题(isSubstr)、字符串转化为整数(atoi)、统计词频问题(Wordcount)、字符串反转(Reverse)。字符串去除空格等一:字符串包含问题(isSubstr)思路:本程序采用最简单的方法;1、遍历源字符串,当子字符串的首字符与遍历到的字符相同时,就遍历字符串。2、...
阅读全文
摘要:一定义:字符串:字符串是由零个或者多个字符组成的有限串行;子串:字符串中任意个连续的字符组成的子序列,并规定空串是任意串的子串,字符串本身也是子串之一;“abcdefg”,”abc“就是其子串,但是“ade”不属于子串范围。子序列:不要求字符连续,但是其顺序与其在主串中相一致;上例中,“abc”与“...
阅读全文