#include <iostream>
#include <cstdlib>
using namespace std;
typedef struct Node{
int value;
Node *left;
Node *right;
}Node,*LinkNode;
void Visit_tree(LinkNode);
void Initial_Tree(LinkNode &,int);
//二叉搜索树的链式结构
//二叉搜索树的建立
void Initial_Tree(LinkNode &Tree,int N)
{
LinkNode root=NULL;
LinkNode pre=NULL;
LinkNode temp=NULL;
LinkNode aid=NULL;
int num;
int flag = 0;
for(int i=0;i<N;i++)
{
//生成n个结点
temp=(LinkNode)malloc(sizeof(Node));
cin>>num;
temp->value=num;
temp->left=NULL;
temp->right=NULL;
if(!flag)
{
//第一个结点处理:根指针指向它
flag=1;
pre=temp;
root=temp;
Tree=root;
}
else
{
//当前指针从根指针开始寻找位置
pre=root;
//pre是新增结点的位置:停止条件,pre为空
while(pre)
{
//记录pre指针的前一位置
aid=pre;
if(num>pre->value)
{
pre=pre->right;
}
else
pre=pre->left;
数据结构——二叉排序树的链式结构
最新推荐文章于 2023-09-08 13:49:24 发布