博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法之数学--哈弗曼树,二叉排序树2021-03-11(未完待续)
阅读量:4102 次
发布时间:2019-05-25

本文共 1265 字,大约阅读时间需要 4 分钟。

1.哈弗曼树

2.二叉排序树

二叉排序树2

题目描述

Time Limit: 1000 ms

Memory Limit: 256 mb
输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。

输入描述:

输入第一行包括一个整数n(1<=n<=100)。

接下来的一行包括n个整数。

输出描述:

可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。

每种遍历结果输出一行。每行最后一个数据之后有一个空格。

输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。

代码

#include 
using namespace std;typedef struct node{
int data; struct node *leftchild,*rightchild;}*BitTree;//插入一个元素void InsertBitTree(BitTree &T,int x){
if(T==NULL){
T=new node; T->data = x; T->leftchild = NULL; T->rightchild = NULL; return; } if(x == T->data) return; else if(x
data){
InsertBitTree(T->leftchild,x); }else InsertBitTree(T->rightchild,x);}//前序输出void PreOrderTraverse(BitTree T){
if(T!=NULL){
cout<
data<<' '; PreOrderTraverse(T->leftchild); PreOrderTraverse(T->rightchild); }}//中序输出void InOrderTraverse(BitTree T){
if(T!=NULL){
InOrderTraverse(T->leftchild); cout<
data<<' '; InOrderTraverse(T->rightchild); }}//后序输出void PostOrderTraverse(BitTree T){
if(T!=NULL){
PostOrderTraverse(T->leftchild); PostOrderTraverse(T->rightchild); cout<
data<<' '; }}int main(){
int n,x; while (scanf("%d",&n)!=EOF){
BitTree T=NULL; for(int i=0;i

还有例题

转载地址:http://gpzsi.baihongyu.com/

你可能感兴趣的文章
面试官:简历上敢写技术精通?那我就不客气了!
查看>>
如何判断一家互联网公司要倒闭了?
查看>>
想快速上手机器学习?来看下这个 GitHub 项目!
查看>>
GitHub 标星 3.6k,一本开源的深度学习中文教程!
查看>>
9 款你不能错过的 JSON 工具
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
200页!分享珍藏很久的Python学习知识手册(附链接)
查看>>
程序员之神
查看>>
4 岁小女孩给 Linux 内核贡献提交
查看>>
推荐几个私藏很久的技术公众号给大家
查看>>
王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
查看>>
Python 趣味打怪:147 段简单代码助你从入门到大师
查看>>
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
查看>>
厉害了!Python 编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!
查看>>
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
7 年工作经验,面试官竟然还让我写算法题???
查看>>
被 Zoom 逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
查看>>
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
再见,Eclipse...
查看>>