C语言实现二叉排序树(采用递归思想)
程序员文章站
2022-03-24 15:33:06
...
#include <bits/stdc++.h>
using namespace std;
//这里是采用了递归的方法
typedef struct node
{
int data;
struct node *lchild,*rchild;
}bnode,*btree;
void intree(btree <ree,int x)
{
if(ltree==NULL)
{
ltree=new bnode;//生成树的结点
ltree->data=x;//然后给结点赋值
ltree->lchild=NULL;
ltree->rchild=NULL;
}
else if(x<ltree->data)
{
intree(ltree->lchild,x);
}
else if(x>ltree->data)
{
intree(ltree->rchild,x);
}
}
void creattree(btree <ree)
{
ltree=NULL;
int x;
printf("请输入数据:");
cin>>x;
while(x!=0)
{
intree(ltree,x);
cin>>x;
}
}
void visit(btree ltree)//采用中序遍历的方式
{
if(ltree)
{
visit(ltree->lchild);
cout<<ltree->data<<" ";
visit(ltree->rchild);
}
}
int main()
{
btree ltree;
creattree(ltree);
visit(ltree);
//cout << "Hello world!" << endl;
return 0;
}
上一篇: 024 ubuntu系统下matplotlib中文乱码问题
下一篇: 排序算法:快速排序
推荐阅读
-
C语言递归实现汉诺塔
-
C语言编程练习 5.按如下函数原型,采用梯形法编程实现(分成100个小梯形,再求这100个梯形面积的和),在积分区间[a,b]内计算函数
-
C语言编程实现:二叉树采用二叉链表存储,要求建立一颗二叉树,并输出要求的二叉树树状形式与结点编号。
-
C语言实现BST二叉排序树的基本操作
-
图的深度优先遍历非递归C语言实现(邻接矩阵、邻接表)
-
C#采用递归实现阶乘的方法
-
C#采用递归实现阶乘的方法
-
[c语言] 编写一个函数reverse_string(char * string)(递归实现)
-
C语言:用递归函数DigitSum(n)实现输入1729,输出sum=1+7+2+9=19的值
-
C语言用栈的思想实现十进制转二进制