自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洋葱汪的博客

学习笔记记录

  • 博客(16)
  • 收藏
  • 关注

原创 二叉树的克隆、比较与相加

目录1、二叉树的克隆操作2、二叉树比较操作的定义3、二叉树的相加操作1、二叉树的克隆操作二叉树的克隆操作 -SharedPointer< BTree<T> > clone() const●克隆当前树的一份拷贝●返回值为堆空间中的一棵新二叉树(与当前树相等...

2018-05-31 15:44:29 847

原创 二叉树的遍历方式与线索化实现

目录1、二叉树结构的层次遍历2、二叉树的典型遍历方式 (先序、中序、后序)3、二叉树的线索化实现1、二叉树结构的层次遍历二叉树的遍历 二叉树的遍历(Traversing Binay Tree)是指从根结点出发,按照某种次序 依次访问二叉树中的所有结点,使得每个结点被访问一次,且仅被访问一次。通用树结...

2018-05-30 17:29:06 567 2

原创 二叉树中的结点删除,清除,属性操作

上节实现了二叉树中的结点查找、插入,这节实现二叉树中的结点删除,清除,属性操作目录1、二叉树中的结点删除2、二叉树中的结点清除3、二叉树中属性操作函数的实现1、二叉树中结点的数目2、二叉树的高度3、二叉树的度数4、编程实验1、二叉树中的结点删除删除的方式 (与通用树结构一致)-基于数据元素值的删除...

2018-05-29 20:30:25 8157 1

原创 二叉树中的结点查找、插入

前面实现了通用树结构,介绍了树到二叉树的转换,这节实现二叉树中的结点查找、插入目录1、 二叉树的存储结构设计2、二叉树中的结点查找操作3、二叉树中的结点插入操作1、 二叉树的存储结构设计目标:完成二叉树和二叉树结点的存储结构设计设计要点- BTree为二叉树结构,每个结点最多只有两个后继结点...

2018-05-29 10:55:33 9028

原创 树到二叉树的转换、二叉树的深层特性

上节实现了复杂的通用树结构,通用树结构中的每个结点都可以有任意多的孩子,都可以有无限形态,工程中很少使用这么复杂的树,这节理论介绍另一种树结构模型目录1、树到二叉树的转换2、二叉树的深层特性1、树到二叉树的转换通用树结构回顾-双亲孩子表示法 ●每个结点都有一个指向其双亲的指针 ●每...

2018-05-28 18:11:20 1700

原创 DTLib - 通用树结构的设计与实现(Tree、TreeNode、GTree、GTreeNode)

目录1、树的定义与操作1、树的定义2、树与结点抽象类的创建2、通用树的存储结构与实现1、通用树中结点的查找操作2、通用树中结点的插入操作3、通用树中结点的清除操作(工厂模式)4、树中结点的删除操作5、通用树中属性操作的实现1、树中结点的数目2、树的高度3、树的度数4、编程实验3、树形结构的层次遍历4、小结1、树的定义与操作1、树...

2018-05-25 12:11:33 1424

原创 DTLib - Sort

目录1、排序的基本概念2、DTLib中的排序类设计3、选择排序4、插入排序5、冒泡排序6、希尔排序7、归并排序8、快速排序9、排序的工程应用示例10、小结1、排序的基本概念排序的一般定义 排序是计算机内经常进行的—种操作,其目的是将一组“无序”的数据元素调整为“有序”的数据元素。排序的数学定义...

2018-05-24 17:35:14 567

原创 递归的思想与应用

目录1、递归的思想2、递归思想的应用1、递归求和2、斐波拉契数列3、求字符串长度4、单向链表的转置5、单向排序链表的合并6、汉诺塔问题7、全排列问题3、递归实现回溯算法1、回溯的本质2、逆序打印单链表中的偶数结点3、八皇后问题4、小结1、递归的思想递归是—种数学上分而自治的思想-将原...

2018-05-21 17:44:54 1352

原创 KMP 子串查找算法

1、KMP子串查找算法问题 如何在目标字符串S中,查找是否存在子串P?朴素解法//目标字符串S中,查找子串P的位置int sub_str_index(const char* s, const char* p){ int ret = -1; int s1 = strlen(s); int p1 = strlen...

2018-05-19 21:12:48 398

原创 DTLib - 字符串类的创建

目录1、历史遗留问题2、字符串类的创建3、编程实验4、字符串类中的常用成员函数实现5、KMP算法的应用6、编程实验7、小结1、历史遗留问题C语言不支持真正意义上的字符串C语言用字符数组和—组函数实现字符串操作C语言不支持自定义类型,因此无法获得字符串类型从C到C++的进化过程引入了自定义类型在C++中可以通过类完成字符串类型的定...

2018-05-18 21:57:14 646 2

原创 栈与队列的相互转换

1、问题 栈和队列在实现上非常类似, 是否可以用栈实现队列?问题分析                      用栈实现队列等价于用“后进先出”的特性实现 "先进先出" 的特性! 解决方案设计  实现思路               准备两个栈用于实现队列: stack_in 和 stack_out                     ▪ 当有新元素入队时:将其...

2018-05-17 20:47:45 1058 1

原创 DTLib - Queue、StaticQueue、LinkQueue

目录1、队列的概念及实现2、基于顺序存储结构的队列 3、编程实验 4、基于链式存储结构的队列 5、编程实验6、编程实验 7、小结1、队列的概念及实现            队列是一种特殊的线性表             队列仅能在线性表的两端进行操作       -队头(Front) : 取出数据元素的一端       -队尾(Rear) : 插入数...

2018-05-16 19:01:35 409

原创 DTLib - Stack、StaticStack、LinkStack

目录1、栈的概念及实现 2、基于顺序存储结构的栈3、编程实验 3、基于链式存储结构的栈4、编程实验 5、栈的应用实践 6、编程实验7、小结 8、深度思考1、栈的概念及实现 栈的定义                 -栈是一种特殊的线性表                 -栈仅能在线性表的—端进行操作                      ...

2018-05-15 21:48:12 376

原创 Linux内核链表剖析

目录1、Linux内核源码的移植2、编程实验 3、Linux内核链表剖析4、编程实验 5、小结 1、Linux内核源码的移植目标      -移植Linux内核链表,使其适用于非GNU编译器      -分析Linux内核中链表的基本实现 Linux内核链表的位置及依赖      -位置 :{linux-2.6.39}\\include\linux\li...

2018-05-12 22:18:16 350

原创 linux内核中的两个宏offsetof、container_of

老生常谈的两个宏(Linux)1、Linux内核中常用的两个宏定义   2、offsetof原理剖析 编译器做了什么?     - offsetof用于计算TYPE结构体中MEMBER成员的偏移位置      - 编译器清楚的知道结构体成员变量的偏移位置     - 通过结构体变量首地址与偏移量定位成员变量 3、编程实验 offsetof原理剖析    ...

2018-05-10 21:26:12 356

原创 DTLib - CircleList、DualLinkList、DualCircleList

目录1、循环链表的实现2、编程实验3、循环链表的应用4、双向链表的实现5、编程实验6、双向循环链表的实现7、编程实验1、循环链表的实现概念上-任意数据元素都有—个前驱和—个后继-所有的数据元素的关系构成—个逻辑上的环实现上-循环链表...

2018-05-10 11:37:52 553

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除