给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵 ...
分类:
其他好文 时间:
2019-10-23 00:31:01
阅读次数:
108
分配的虚拟内存没有使用之前 是不会映射物理内存的。1 申请区段 目的: 对齐4kb// 定义一个可读可写的区段#pragma section("data seg", read,write) // 在区段里面 定义一个变量 var =1 (这里是区段第一个变量,所以坑定是 4kb对齐的起始地址)dec... ...
分类:
其他好文 时间:
2019-10-22 15:35:06
阅读次数:
98
1.声明数组 声明形式一: 声明形式二: 二维数组的声明和一维数组类似,内存分配也是使用new关键字. 声明: 初始化: 实例: 2.内存的分配 为数组分配内存空间,如果不分配内存,将不能访问它的任何元素.我们使用new关键字 来为数组分配内存空间 由于数组没有被赋值,所以显示默认值,比如int类型 ...
分类:
编程语言 时间:
2019-10-22 12:33:44
阅读次数:
68
1:String类型 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 //初始化方法 6 string s1 = "hello";//默认构造方法 7 string s2(s1);//将s2初始化为s1的一个副本 8 s ...
分类:
其他好文 时间:
2019-10-19 22:16:14
阅读次数:
138
tcmalloc(即Thread-Cache Malloc)是一个通用的内存分配器,使用tcmalloc只需要在编译的链接阶段加入-ltcmalloc,而不是使用glibc(ptmalloc2),不需要有任何的代码改动。也就是说用户在使用malloc/free、new/delete时会使用tcmal... ...
分类:
其他好文 时间:
2019-10-18 11:06:13
阅读次数:
151
一.简介 二.对象内存 1.创建和销毁对象 对象可以存放在栈中或者静态存储区中 也可以在堆(heap)上动态创建对象 2.对象的生命周期 在栈上或在静态存储区上创建一个对象,编译器决定了对象持续的声明周期并自动销毁它 在堆上创建对象,编译器不知道它的生命周期,由程序员编程决定何时销毁对象 垃圾收集器 ...
分类:
编程语言 时间:
2019-10-17 16:06:49
阅读次数:
85
垃圾回收机制,依赖JRE和JVM,涉及操作系统中内存的分配与回收。依据所学,我猜想这种机制需要的数据结构是堆内存分配表(链),管理已分配和未分配的堆内存,对于已分配堆内存,需要知道由栈内存中的哪些变量引用。知道了这些,依赖垃圾检测和回收算法,把长期未得到栈变量引用的堆内存块回收,挂到未分配内存表中。 ...
分类:
编程语言 时间:
2019-10-16 13:02:54
阅读次数:
81
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆 ...
分类:
其他好文 时间:
2019-10-15 21:19:39
阅读次数:
87
概述 对象已死吗 引用计数算法 可达性分析算法 再谈引用 生存还是死亡 回收方法区 垃圾收集算法 标记-清除算法 复制算法 标记-整理算法 分代收集算法 HotSpot的算法实现 枚举根节点 安全点 安全区域 垃圾收集器 Serial收集器 ParNew收集器 Parallel Scavenge收集 ...
分类:
其他好文 时间:
2019-10-15 18:51:36
阅读次数:
93
1.内存分配的几种方法与特点答案:栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,自由存储区:就是那些由malloc等分配的内存块全局/静态存储区:全局变量和静态变量被分配到同一块内存中常量存储区:这 ...
分类:
编程语言 时间:
2019-10-15 16:21:58
阅读次数:
100