二叉搜索树 与 双向链表 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目:输入一颗二叉搜索树, 将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点, 只能调整数中结点的指针的指向.本程序包含算法原理, 测试程序, 及 输出.代码:/*
* main.cpp
*
* Created on: 2014.6.12
*...
分类:
编程语言 时间:
2014-06-30 07:32:07
阅读次数:
226
分析:
还是二叉树遍历模板的改造问题,对于二叉搜索树,中序遍历的结果是有顺序的。题目的要求无非是将中序遍历的结点访问结果链接起来,至于双向链表,通过复用树结点的left 和 right 指针就可以完成。最直接的就是我们可以把中序遍历中访问到的每个结点都放入到个队列里,然后将队列的元素链接起来,但是题目不允许用额外的空间。
想想中心遍历,遍历顺序是 左 --根---右,那么中序遍历的第一个访问结...
分类:
其他好文 时间:
2014-06-27 07:56:13
阅读次数:
341
题目:输入一棵二叉搜索树(记住是搜索树),将该二叉搜索树转换为一个排序的双向链表。要求:不能创建任何新的结点,只能调整树中结点指针的指向。分析:如下图因为是二叉搜索树。所以树的排列是规则的。通过中序遍历正好遍历的是由小到大的序列。要求说明是只能改变树结点指针的指向,不能增加新的空间和结点。所以在中序...
分类:
其他好文 时间:
2014-06-23 06:57:13
阅读次数:
242
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。输入:输入可能包含多个测试样例。对于每个测试案例,输入的第一行为一个数n(0data
= m; s->lchild = NULL; s->rchil...
分类:
其他好文 时间:
2014-06-12 20:29:37
阅读次数:
351
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。分析:首先不能创建新的结构,只能在树的前提下进行改变指针的指向。又由于是二叉搜索树,可以通过画图分析可知,二叉搜索树的左子树小于根节点小于右子树,可以发现是个递归过程也是一个中序遍...
分类:
其他好文 时间:
2014-05-26 08:01:04
阅读次数:
169