1,使用Node内部类来表示单链表的节点,这样就不需要为Node类的字段添加get方法和set方法就能访问这些字段,要知道内部类的这个用法。 2,public boolean deleteByElement(T elem…
JAVA实现具有迭代器的线性表(单链表)
一,迭代器的基本知识: 1,为什么要用迭代器?(迭代:即对每一个元素进行一次“问候”) 比如说,我们定义了一个ADT(抽象数据类型),作为ADT的一种实现,如单链表。而单链表的基本操作中,大部分需要用到依次遍历单链表中的…
按层打印二叉树--每行打印一层
一,问题介绍 给定一棵二叉树,按照层序遍历的顺序打印二叉树。但是要求,每一行打印一层数据。 二,算法分析 借助二叉树的层序遍历来实现。但是需要额外两个变量。一个变量用来保存当前层 还未打印的结点…
判断二叉树是否是平衡二叉树
一,问题描述 任意给定一棵二叉树,判断它是否是平衡二叉树。所谓平衡二叉树,是指二叉树中任意一个结点的左右子树的高度之差不超过1 二,思路分析 可以分两步实现。第一步先实现求解 二叉树中每个结点的高度的函数h…
JAVA实现二叉树
树是编程中一种常用的数据结构。以前在学习数据结构时,总想着如何实际地实现出一颗二叉树出来,现在参考了《数据结构与算法分析 JAVA语言描述 第二版》之后,照着书中的例子实现了一颗二叉树,个人感觉书上面的二叉树实现操作比较…
JAVA实现二叉树(简易版--实现了二叉树的各种遍历)
1,个人感觉二叉树的实现主要还是如何构造一颗二叉树。构造二叉树函数的设计方法多种多样,本例采用 addNode 方法实现。以下程序通过定义内部类来表示二叉树的结点,然后再实现了二叉树这种数据结构的一些基本操作。 &nbs…
二叉树的操作之统计二叉树中节点的个数
一,问题描述 给定一颗二叉树,已知其根结点。 ①计算二叉树所有结点的个数 ②计算二叉树中叶子结点的个数 ③计算二叉树中满节点(度为2)的个数 二,算法分析 找出各个问题的基准条件,然后采用递归的方式实现。 …
二叉树的层序遍历算法实现
一,问题描述 实现二叉树的层序遍历–从根开始,依次向下,对于每一层从左向右遍历。 二,算法分析 层序遍历与先序、中序、后序遍历不同。层序遍历用到了队列,而先、中、后序需要用到栈。 因此,先、中、…
求二叉树中第K层结点的个数
一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由各个结…
二叉树的前序、中序、后序的非递归遍历实现,二叉查找树的递归实现及递归分析,JAVA实现二叉树,二叉树的创建算法
一,二叉树的遍历 二叉树的递归遍历非常简洁,递归调用需要用到栈。因此,要想实现非递归遍历,就类似于模拟程序的自动压栈、出栈,就需要创建一个栈。 本程序使用java.util.LinkedList 来表示栈。 …
二叉树的构造,构造二叉树,并求解树的高度
二叉树是很常用的一种数据结构。但是在使用它之前,得先构造一棵二叉树,下面这篇文章记录一下如何构造一棵二叉排序树 和 完全二叉树。 一,给定一组整数,请构造一棵二叉排序树 比如:2,4,5,1,3 构造二叉排…
动态规划的思想来求解字符串分割问题
LeetCode WordBreak原题 Given a string s and a dictionary of words dict, determine if s can be segmented into a s…