摘要:
二叉查找树的c++实现: 1. 节点和二叉查找树的定义 1.1 二叉查找树节点 BSTNode是二叉查找树的节点,它包含二叉查找树的几个基本信息:(01) key -- 它是关键字,是用来对二叉查找树的节点进行排序的。(02) left -- 它指向当前节点的左孩子。(03) right -- 它指 阅读全文
摘要:
一、树的介绍 1. 树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(01) 每个节点有零个或多个子节点;(02) 没有父节点的节点称为根节点;(03) 每一个非根节 阅读全文
摘要:
同样实现方法有两种: 1. 数组的实现,可以存储任意类型的数据(略); 2. Java的 Collection集合 中自带的"队列"(LinkedList)的示例: 阅读全文
摘要:
一、介绍 队列(Queue),是一种线性存储结构。它有以下几个特点:(01) 队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。(02) 队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。队列通常包括的两种操作:入队列 和 出队列。 二、实现 阅读全文
摘要:
和C++一样,JDK包中也提供了"栈"的实现,它就是集合框架中的Stack类。关于Stack类的原理,在"Java 集合系列07之 Stack详细介绍(源码解析)和使用示例"中,已经详细介绍过了。本部分给出2种Java实现Java实现一:数组实现的栈,能存储任意类型的数据。Java实现二:Java的 阅读全文
摘要:
栈(stack),是一种线性存储结构,它有以下几个特点: (01) 栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的。 (02) 向栈中添加/删除数据时,只能从栈顶进行操作。 栈通常包括的三种操作:push、peek、pop。 push -- 向栈中添加元素。 阅读全文
摘要:
/** * Java 实现的双向链表。 * 注:java自带的集合包中有实现双向链表,路径是:java.util.LinkedList * * @author skywang * @date 2013/11/07 */ public class DoubleLink<T> { // 表头 priva 阅读全文
摘要:
c++实现双向链表 : 1 #ifndef DOUBLE_LINK_HXX 2 #define DOUBLE_LINK_HXX 3 4 #include <iostream> 5 using namespace std; 6 7 template<class T> 8 struct DNode 9 阅读全文
摘要:
C++在发展的后期增加了模板(template )的功能,提供了解决这类问题的途径。可以声明一个通用的类模板,它可以有一个或多个虚拟的类型参数。 比如: 都是比较大小的函数,只是参数类型不同,于是用一个类模版综合成一个函数: 1. 用类模板定义对象时用以下形式: 类模板名<实际类型名> 对象名; 类 阅读全文