摘要: 一.二叉树 满二叉树和完全二叉树的概念: 满二叉树要求所有分支都是满的,根、节点、左右孩子 完全二叉树没有满二叉树严格 只需要最后一个序号的节点之前的节点都齐全就可以。 存储方式: 1.链式存储(链表) 跟链表不同之处就是从一个指向下一个元素next元素变为left right两个元素 2.数组(顺 阅读全文
posted @ 2020-04-23 15:10 hornets 阅读(146) 评论(0) 推荐(0)
摘要: 优化顺序表和链表的缺点 工作模式:数据存储方式是随机的,有个数据和整形游标来表示每个节点的元素(链表是数据和指针结合), 整形变量就是下个元素的下标。 备用链表: 1.静态链表表示的是存储的数据的链表,而备用链表就是空闲可用的或者已用完的链表,留着后期使用。 2.数据表是从下标1开始, 备用表是下标 阅读全文
posted @ 2020-04-13 14:12 hornets 阅读(199) 评论(0) 推荐(0)
摘要: 把所有数据用一根线儿串起来,再存储到物理空间中, 一对一关系 线性表分为以下两种 顺序存储结构(顺序表) 链式存储结构(链表) 术语表示: 某一元素的左侧相邻元素称为“直接前驱”,位于此元素左侧的所有元素都统称为“前驱元素”; 某一元素的右侧相邻元素称为“直接后继”,位于此元素右侧的所有元素都统称为 阅读全文
posted @ 2020-04-13 12:20 hornets 阅读(915) 评论(0) 推荐(0)
摘要: 内存泄露: 分析这段代码: 1. 开辟了10个int大小的数组指针p 2. 给指针p重新指向了5个int大小类型的数组 3. 释放指针p 4. 释放之后只是释放内存,并不会同时释放指针,所以避免野指针并且阈予NULL值。 5. return 程序结束。 问题的关键是指针p刚开始指向了10个int大小 阅读全文
posted @ 2020-03-14 21:39 hornets 阅读(186) 评论(0) 推荐(2)
摘要: 野指针概念: 1.指向没有访问权限的内存: 这段程序在GCC下运行会报Segment Fault错误,因为s是局部指针变量,其值是随机不确定的,不知指向哪块内存。一般情况下这种内存要么不能访问,要么是没有分配的。 但是也有极低的概率会指向一个分配好的内存地址,虽是暂时程序没崩溃,但是碰到的概率是极低 阅读全文
posted @ 2020-03-13 21:56 hornets 阅读(418) 评论(1) 推荐(0)
摘要: 一.堆分配算法 前言: 任意时刻程序发出请求,要么申请一段空间、要么释放一段已申请空间。而且申请的空间小到几个字节,大到几GB,所以堆的管理显得有些复杂。 1.malloc() 堆内存分配方法: 1. malloc的内存管理交给系统去做: 原因是内核就是管理者进程,可以提供个系统调用就可以让mall 阅读全文
posted @ 2020-03-12 21:13 hornets 阅读(467) 评论(0) 推荐(0)
摘要: 一.虚拟地址空间 64位的CPU一次处理64Bit(8字节)数据。 32位编译模式 在32位模式下,一个指针或地址占用4个字节的内存,共有32位,理论上能够访问的虚拟内存空间大小为 2^32 = 0X100000000 Bytes,即4GB,有效虚拟地址范围是 0 ~ 0XFFFFFFFF。 程序能 阅读全文
posted @ 2020-03-11 11:50 hornets 阅读(3060) 评论(0) 推荐(2)
摘要: BF算法: 原理:普通模式匹配算法,其实现过程没有任何技巧,就是简单粗暴地拿一个串同另一个串中的字符一一比对,得到最终结果。 字符串匹配简单方式是第一个字母跟对比字符串的第一个字母对比, 相同就对比第二个字符串, 不相同就整体往后移,以此类推. 这样的查找方式是无效率的. KMP算法思想: 一个基本 阅读全文
posted @ 2020-03-10 15:11 hornets 阅读(152) 评论(0) 推荐(0)
摘要: set nu "line syntax on "高亮 syntax enable "高亮 filetype on "检测文件类型 set showmode "是否要显示 --INSERT-- 之类的字眼在左下角的状态栏 set showcmd "在屏幕右下角显示未完成的指令输入 set encodi 阅读全文
posted @ 2020-03-10 11:33 hornets 阅读(207) 评论(1) 推荐(0)