题目大意:
给定一颗满二叉树的后序遍历,小写字母表示叶子节点,以从下到上,从右到左的顺序输出这棵树。
解题思路:
用堆栈构建二叉树,再用bfs遍历树,用堆栈逆序输出。
注意:构树时,若节点用malloc动态分配会超时。...
分类:
其他好文 时间:
2014-08-03 18:13:15
阅读次数:
277
1.new、delete、malloc、free关系
delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之...
分类:
编程语言 时间:
2014-08-03 18:11:25
阅读次数:
407
最近在研究php自定义函数的实现,其中php自定义函数在传递参数时,是放到人为的一个栈中,这个跟写C程序时,参数入栈的这个栈还不一样,其中延伸到了 malloc 以及free有人说在free(p)后,要将p设置为NULL, 在查找了一翻资料后,大体上弄明白了是怎么回事参考资料:http://bbs....
分类:
编程语言 时间:
2014-08-03 17:51:55
阅读次数:
225
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在...
分类:
移动开发 时间:
2014-08-02 23:12:04
阅读次数:
349
struct Node{ int data; Node *next;};//创建链表 输入为数字,如果输入0 链表结束(0不计)Node *creat(){ Node *head,*p,*s; int x,cycle=1; head=(Node *)malloc(siz...
分类:
其他好文 时间:
2014-08-02 20:50:24
阅读次数:
292
两者都是在堆上分配内存区。malloc()是C运行库中的动态内存分配函数,WINDOWS程序基本不使用了,因为它比WINDOWS内存分配函数少了一些特性,如,整理内存。GlobalAlloc()是16位WINDOWS程序使用的API,返回一个内存句柄,在实际需要使用时,用GlobalLock().....
分类:
其他好文 时间:
2014-08-02 17:53:34
阅读次数:
227
动态分配内存:头文件 stdlib.h
malloc:分配内存
calloc:分配内存,并清零
realloc:调整已分配的内存块大小
示例:
int *p=(int *) malloc(3*sizeof(int));//分配内存,成功返回首地址,失败返回NULL
free(p);p=NULL;//释放分配的内存,并修改指...
分类:
其他好文 时间:
2014-08-01 19:46:22
阅读次数:
240
??
1.在main方法里面直接定义一个非常大的数组的时候,可能会出现栈溢出:错误代码演示:
#include
#include
void
main()
{
int
a[1024 * 1024];
int
num = 100;
system("pause");
}
错误截图:
2.在定义数...
分类:
其他好文 时间:
2014-08-01 02:26:11
阅读次数:
456
#include
#include
main()
{
char *p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q);
printf("%s%s\n",p,q);
}...
分类:
其他好文 时间:
2014-07-31 20:55:37
阅读次数:
167
我一直非常关注Linux系统中的内存管理,想了解这一机制的工作过程,断断续续看了几年书,觉得有时候有收获,但是过一段时间就忘记了,让人觉得这个子系统很庞大,无从下手。最近看了很多书,对以malloc为切入点的linux内存管理有了一定的认识,在这里首先将需要的参考资料列出来,稍后手动实现的时候再补上。主要的参考资料有:
《深入理解Linux内核》:关于X86的Linux的段页式存储机制(第二章内...
分类:
其他好文 时间:
2014-07-31 17:09:26
阅读次数:
178