摘要: 除了线程存储持续性,C++使用三种不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。 自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性是自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++有两种存储持续性为自动 阅读全文
posted @ 2020-12-13 13:45 本丘克 阅读(210) 评论(0) 推荐(0) 编辑
摘要: C++中可以访问的内存,通常可以分为三类:静态常量区、调用栈和堆。通常编译器使用三块独立内存:一块用于静态变量(可能再细分),一块用于自动变量,另一块用于动态存储。 静态变量区 这一块内存用于静态变量。静态变量区是编译器在编译期间就已经确定好的数据。例如在全局范围内声明const char text 阅读全文
posted @ 2020-12-03 19:42 本丘克 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 给定一个带头结点的单链表,编写算法将其原地逆置。所谓“原地”是指空间复杂度为O(1)。有两种方法,头插法和冒泡法。这两种方法的时间复杂度均为O(n)。 头插法 思路 我们知道,用头插法建立链表,得到的链表中元素的顺序和输入的顺序相反,所以利用这一特点,可以将链表逆置。 给定一个带头结点的单链表L,如 阅读全文
posted @ 2020-11-28 22:59 本丘克 阅读(3233) 评论(0) 推荐(1) 编辑
摘要: 摘要 定义和数据结构 线索化 遍历 一、定义和数据结构 1. 定义 结点结构中含有线索的的二叉树称为线索二叉树。 若结点有左子树,则其lchild域指示其左子,否则令lchild域指示其前驱;若结点有右子树,则其rchild域指示其右子,否则令rchild域指示其后继。 为了避免混淆,需要增加两个标 阅读全文
posted @ 2020-04-08 22:52 本丘克 阅读(816) 评论(0) 推荐(0) 编辑
摘要: 摘要 + "定义和数据结构" + "初始化和赋值" + "遍历方式" 一、定义和数据结构 1. 定义 二叉树(Binary Tree)是一种树形结构,它的特点是每个结点至多有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能随意颠倒。 2. 数据结构 该结点是二叉树 阅读全文
posted @ 2020-03-30 00:02 本丘克 阅读(378) 评论(0) 推荐(0) 编辑