问题描述:Write a function that prints out the node values for a BST in sorted order from highest to lowst.
问题分析:BST是一种特殊的二叉树,对于每一个结点,其左子树所有结点的值都小与该结点值,右子树所有结点的值都大于该结点值。所以利用in-order遍历能很好地打印出排好序的结点。不过需要注意的是,平常使用的in-order是LNR,而在此程序中应该把in-order打印的顺序改变为RNL.
代码实现:
问题分析:BST是一种特殊的二叉树,对于每一个结点,其左子树所有结点的值都小与该结点值,右子树所有结点的值都大于该结点值。所以利用in-order遍历能很好地打印出排好序的结点。不过需要注意的是,平常使用的in-order是LNR,而在此程序中应该把in-order打印的顺序改变为RNL.
代码实现:
#include <iostream>
using namespace std;
// BST的结点
typedef struct node
{
int key;
struct node *lChild, *rChild;
}Node, *BST;
// 在给定的BST中插入结点,其数据域为element, 使之称为新的BST
bool BSTInsert(Node * &p, int element)
{
if(NULL == p) // 空树
{
p = new Node;
p->key = element;
p->lChild = p->rChild = NULL;
return true;
}
if(element == p->key) // BST中不能有相等的值
return false;
if(element < p->key) // 递归
return BSTInsert(p->lChild, element);
return BSTInsert(p->rChild, element); // 递归
}
// 建立BST
void createBST(Node * &T, int a[],

本文介绍了如何编写一个函数,按照从大到小的顺序打印二叉搜索树(BST)的节点值。通过调整中序遍历(RNL)顺序,实现了从最高值到最低值的节点打印。提供了一个包含创建BST、插入节点以及倒序中序遍历的C++代码示例。
最低0.47元/天 解锁文章
639

被折叠的 条评论
为什么被折叠?



