- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 递归和非递归实现链表反转
//思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面ListNode * ReverseList(ListNode * head){ //如果链表为空或者链表中只有一个元素 if(head==NULL || head->m_pNext==NULL) return head; ListNode * p=head->m_pNext;
2015-09-19 16:06:57 226
原创 求二叉树中节点最大距离
问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。书上的解法书中对这个问题的分析是很清楚的,我尝试用自己的方式简短覆述。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。情况B: 路
2015-09-19 14:59:00 344
原创 两个栈模拟一个队列/两个队列模拟一个栈
1、用两个栈实现队列和用两个队列实现一个栈解题思路: 插入操作在stack1中进行,删除操作在stack2中进行,如果stack2为空,则将stack1中的所有元素转移到stack2中。代码:#include#include#includeusing namespace std;template class CQueue{public:
2015-08-17 16:38:51 636
原创 指针问题
char *c[] = { "ENTER", "NEW", "POINT", "FIRST" }; char **cp[] = { c+3, c+2, c+1, c }; char ***cpp = cp; int main(void){ printf("%s", **++cpp); printf("%s", *--*++cpp+3); printf("%s", *cpp[
2015-08-14 14:35:38 333
原创 malloc/free与new/delete的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。其区别在于:1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对
2015-08-12 11:20:10 227
原创 堆和栈的区别
堆和栈的主要的区别有以下几点: 1、管理方式不同:栈是由编译器自动管理,无需我们手工控制;堆释放工作由程序员控制,容易产生memory leak。 2、空间大小不同:一般在32位系统下,堆内存可以达到4G的空间,从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲,一般都是有一定的空间大小的,例如,在VC6下面,默认的栈空间大小是1M。 3、能否产生碎片不同:堆频
2015-08-12 09:33:02 215
原创 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
VS2010每次在建立Win32 Console Project时会出现“error LNK1123” 错误,网上推荐的一种解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入单 “是”改为“否”即可,但是这种解决办法每次新建一个项目都要这样设置一次。 个人觉得这个问题最好的解决办法是:1、先将电脑里所有的cvtres.exe全部搜索出来删除;2、重新下载一个新的cvtre
2015-08-11 14:30:36 198
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人