zoukankan      html  css  js  c++  java
  • 二叉排序树之按大小遍历

    从大到小按递减顺序输出所有关键字不小于x的数据元素

    递归方法

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    typedef struct BSTreeNode
    {
    	int data;
    	struct BSTreeNode *lchild,*rchild;
    }BSTree;
    int _tmain(int argc, _TCHAR* argv[])
    {
    	return 0;
    }
    void output(BSTree *bst,int x)
    {
    	if(bst)
    	{
    		if(bst->data>=x)output(bst->rchild,x);
    		if(bst->data>=x)cout<<bst->data;
    		if(bst->data>=x)output(bst->lchild,x);
    	}
    }
    

     非递归方法

    #include "stdafx.h"
    #include<iostream>
    using namespace std;
    typedef struct BSTreeNode
    {
    	int data;
    	struct BSTreeNode *lchild,*rchild;
    }BSTree;
    int _tmain(int argc, _TCHAR* argv[])
    {
    	return 0;
    }
    void output(BSTree *bst,int x)
    {
    	BSTree *s[100],*p=bst;
    	int top=-1;
    	while(p||top>-1)
    	{
    		while(p)
    		{
    			if(p->data>=x)
    			{
    				s[++top]=p;
    				bst=p->rchild;
    			}
    		}
    		if(top>-1)
    		{
    			p=s[top--];
    			if(p->data>=x)
    				cout<<p->data;
    			if(p->data>=x)
    				p=p->lchild;
    		}
    	}
    }
    
  • 相关阅读:
    111
    实验 12 综合练习二
    实验 11结构体
    作业 5 指针应用1
    实验 10 指针2
    实验9 指针1
    实验8 数组2
    实验7
    321
    实验9-2
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/2657819.html
Copyright © 2011-2022 走看看