- 博客(10)
- 收藏
- 关注
原创 用c++实现红黑树的判断、插入、遍历操作
红黑树 红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。通过对任何一条从根到叶子简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树是满足下面红黑性质的二叉搜索树: 1. 每个节点,不是红色就是黑色的; 2. 根节点是黑色的; 3. 如果一个节点是红色的,则它的两个子节点是黑色的;
2016-07-26 22:13:24 4881 2
原创 二叉搜索树的定义、查找、插入和删除
二叉搜索树的定义 二叉搜索树,也称有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树: 1. 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2. 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 3. 任意节点的左、右子树也分别为二叉查找树。 4. 没有键值相等的节点。 二叉搜索树的删
2016-07-21 21:59:00 23657 2
原创 项目:微空间
前言:经过了3周的实习,学习了html/css基本语法,自学了一点javascript,本人经过5天的努力,初步完成了微空间项目,废话不多说,下面上干货: 项目名称:微空间 功能模块:登录 注册 主页 留言板 随笔 摄影 音乐 萌宠 项目功能简介: 我的项目为个人空间类网站,题材取自百度网页、QQ空间的图和网易云音乐的MV,项目模块
2016-07-16 15:27:17 2920 2
原创 题目:将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中二叉搜索树,则输出转换后的排序双向链表。 解析:在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总是大于父结点的值。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。所以这两
2016-07-30 16:05:58 7856 2
原创 输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。
题目: 输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 陷阱:考虑大数问题,就是输入的数字非常大的情况,如100,怎么表示100位的数呢,可以用字符串保存。 细节问题: 1.字符串递增的溢出判断 2.打印时过滤0 方法一: 使用字符串数组表示大数,最直观的方法是字符串里每个字符都是’
2016-07-27 21:55:37 4985
原创 剑指offer面试题:求二叉树的镜像(递归、循环解法及测试用例)
题目:给定二叉树,将其变换为源二叉树的镜像。 二叉树的定义如下: struct TreeNode { int val; TreeNode* left; TreeNode* right; }; 输入描述: 二叉树的镜像定义: 源二叉树 8 / \ 6 10 / \
2016-07-25 01:34:25 4676
原创 函数覆盖及其使用举例
覆盖是指派生类中如果存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致。覆盖函数和被覆盖函数只有函数体不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本。 覆盖的特征为在不同的范围中(分别位于派生类与基类)的函数,函数名字相同,函数参数相同,基类函数必须有virtual关键字,覆盖的示例代码如下:
2016-07-22 20:22:22 2373
原创 死锁的定义、产生原因、必要条件、避免死锁和解除死锁的方法
1.死锁:如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进程是死锁的。 2.产生死锁的原因: (1)竞争不可抢占性资源。 (2)竞争可消耗资源。 当系统中供多个进程共享的资源如打印机,公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。 (3)进程推进顺序不当。 进程在运行过程中,请求和释放资源的顺序不当,也同样会
2016-07-18 17:50:23 25620 4
原创 剑指offer面试题:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。 class CMyString { public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); private: char* pData; }; 分析:赋值运算符要注意以下四点: 1
2016-07-17 15:48:08 2465
原创 一个推理问题:求老师生日
一个推理问题:求老师生日 小明和小强都是张老师的学生,张老师的生日是M月N日, 2人都知道张老师的生日是下列10组中的一天, 张老师把M值告诉了小明,把N值告诉了小强, 张老师问他们知道他的生日是哪一天吗? 3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明说:如果我不知道的话,小
2016-07-16 14:30:35 3818
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人