2016级数据结构

2017-9-15 08:52
请先登录。
老师对不起,我昨天忘记提交作业这是任务二十
#include<iostream>
using namespace std;
typedef struct BSTNode
{
	int data;
	struct BSTNode*lchild, *rchild;
}BSTNode, *BSTree;
void Insert_BST(BSTree &T, int element)
{
	if (!T)
	{
		T = (BSTree)malloc(sizeof(BSTNode));
		if (!T)
		{
			return;
		}
		T->lchild = T->rchild = NULL;
		T->data = element;
	}
	else if (element == T->data)
	{
		return;
	}
	else if (element < T->data)
	{
		Insert_BST(T->lchild, element);
	}
	else {
		Insert_BST(T->rchild, element);
	}
}
void Create_BST(BSTree &T, int arr[], int n)
{
	for (int i = 0; i < n; i++)
	{
		Insert_BST(T, arr[i]);
	}
}
bool Traver_BST(BSTree T)
{
	if (T)
	{
		if (T->lchild)
		{
			if (T->lchild->data > T->data)
			{
				return false;
			}
		}
		if (T->rchild)
		{
			if (T->rchild->data < T->data)
			{
				return false;
			}
		}
		Traver_BST(T->lchild);
		Traver_BST(T->rchild);
	}
	return true;
}
int main(void)
{
	BSTree T;
	T = NULL;
	int arr[] = { 5,4,3,2,1 };
	Create_BST(T, arr, 5);
	bool f=Traver_BST(T);
	if (f)
	{
		cout << "是叉" << endl;
	}
	else
	{
		cout << "非叉" << endl;
	}
	return 0;
}

老师,任务二十一昨天没有及时交上作业,现在补上

已知一棵二叉排序树上所有关键字中的最小值为-max,最大值为max,又-max<x<max。编写具有如下功能的函数:求该二叉树上小于x且最靠近x的值a和大于x且最靠近x的b。
typedef struct BTNode
{
    int data;
    BTNode *lchild,*rchild;
}BTNode,*BiTree;
void fun(BiTree T,int x,int *a,int *b)
{
    if(T)
    {
        if(x<T->data)
        {
            *b=T->data;
            fun(T->lchild,x,a,b);
        }
        else
        {
            if(x>T->data)
            {
                *a=T->data;
                fun(T->rchild,x,a,b);
            }
            else
            {
                if(T->lchild)
                {
                   BiTree p=T->lchild;
                    while(T->rchild)
                        p=p->rchild;
                    *a=p->data;
                }
                if(T->rchild)
                {
                    BiTree p=T->rchild;
                    while(p->lchild)
                        p=p->lchild;
                    *b=p->data;
                }
            }
        }
        return;
    }
}

老师,任务二十排序纸质作业已完成,但我忘记雪梨上回复了。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。

提交了 2016级数据结构 任务 任务二十 查找(一) 的任务作业。