思路:这道题目关键在于不能创建新的节点,如不然,我们可以直接将二叉排序树中序遍历保存到一个数组中,而后再建立一个双性链表,将数据保存到双向链表里。
这里不能创建新节点,我们只能改变节点的指向左右子树的节点,让其变为指向二叉链表中的前后节点,很明显这里同样用的是中序遍历,因此这道题目依然是中序遍历的变种,中序递归构造实现即可,每次递归都保存一个指向已构造好的双向链表的尾节点的指针,将其与下一个节点连接起来。
另外,这道题OJ的输出格式与前面的不同,输出样例中又没有说明,我试了三次才AC,前两次...
分类:
其他好文 时间:
2014-05-26 05:21:59
阅读次数:
189
按先序序列输入字符序列(其中逗号表示空节点),输出该二叉树的层次遍历序列。
#include
#define END ','//表示空节点
using namespace std;
typedef char Elem_Type;
typedef struct BiTree
{
Elem_Type data;
struct BiTree *Lchild;
stru...
分类:
其他好文 时间:
2014-05-26 04:53:07
阅读次数:
261
1、C++编成求二叉树的深度;int binTreeDepth(link *head){ int
depthl=0,depthr=0; if(head==null) return 0; else{ if ((head->left)!=null)
depthl = 1 + binTreeDepth(h...
分类:
其他好文 时间:
2014-05-26 02:48:07
阅读次数:
266
??
// //广度优先遍历二叉树
// //从一个顶点开始,识别所有可到达顶点
// //的方法叫作广(宽)度优先搜索,这种
// //搜索可使用队列来实现
typedef struct binarytree
{
EleType data;
struct binarytree *LeftChild;
struct binarytree *RightChild...
分类:
其他好文 时间:
2014-05-25 18:25:35
阅读次数:
316
引言
这周的作业其实有点复杂,需要完成的代码有点多,有点绕。本周的课程主要讲了Scala中的类、继承和多态,作业也很好的从各个方面考察了课程的内容。作业题目工程主要需要完成的部分是TweetSet.scala这个文件中的内容,比较新潮,都是和推特相关。其中定义了一个抽象类TweetSet,以及其的两个子类Empty、NonEmpty,表示空集和非空集。非空集使用二叉树来表示,二叉树的根是一个Tw...
分类:
其他好文 时间:
2014-05-25 16:53:15
阅读次数:
444
红黑树
红黑树是一种二进制查找树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或black。通过对任何一条从根到叶子的路径上各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。
树中灭个节点包含五个域,color,key,left,right 和p。如果某及诶但没有一个子节点或父节点,则该节点响应的指针域包含值NIL.我们将把这些NIL指向二叉查找...
分类:
其他好文 时间:
2014-05-25 10:27:17
阅读次数:
290
形态:
实现:
/***************************************8
二叉树的三叉链表存储
by Rowandjj
2014/5/23
*****************************************/
#include
using namespace std;
typedef int ElemType;
//------...
分类:
其他好文 时间:
2014-05-25 08:52:26
阅读次数:
239
/***************************************************
二叉树的线性存储
by Rowandjj
2014/5/23
***************************************************/
#include
#include
using namespace std;
#define MAX 255
#define...
分类:
其他好文 时间:
2014-05-25 04:25:41
阅读次数:
261
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过...
分类:
编程语言 时间:
2014-05-25 01:00:06
阅读次数:
382
题目链接:uva 10312 - Expression Bracketing
题目大意:给出一个序列,长度为n,表示有n个x(节点),可以添加任意括号,问说形成的串为非二叉表达式的有多少个。
解题思路:直接求非二叉表达式是比较困难,所以换求总数减去二叉表达式的数量。二叉表达式的很容易发现是Catalan数,而总数时一种叫SuperCatalan数的一种序列,第一次接触。或者可以用dp做...
分类:
其他好文 时间:
2014-05-24 19:23:26
阅读次数:
309