问题 M: 二叉查找树(Ⅱ)-文本显示
来源:互联网 发布:哈希map c语言 编辑:程序博客网 时间:2024/06/03 18:50
前言必读!http://blog.csdn.net/hnust_v/article/details/51747743
问题 M: 二叉查找树(Ⅱ)-文本显示
时间限制: 1 Sec 内存限制: 128 MB
提交: 130 解决: 60
[提交][状态][讨论版]
题目描述
本任务是在空二叉查找树的基础上,依次插入一些关键字,然后文本方式显示该树。要求树中不能有重复关键字。输入由多组数据 组成。每组数据由两行组成。第一行是待插入关键字的数目n(1<=n<=100)。第2行是n个空格分开的正整数,值不超过100。输出对于每一组数据,显示对应的二叉查找树,相当于常规树形左旋90度。见样例。 注意每一层缩进为4,每一行行尾没有空格符号。样例输入64 2 1 5 3 6样例输出 6 54 3 2 1提示[提交][状态][讨论版]
需要注意的建树时记录层数以便于打印
#include <bits/stdc++.h>using namespace std;typedef struct LNode{ LNode *Lchild,*Rchild; int info,flor;}LNode,*Fin;LNode Q[10000];void Print(Fin P){ if(P==NULL) return; Print(P->Rchild); for(int i=1;i<=P->flor;i++) printf(" "); printf("%d\n",P->info); Print(P->Lchild);}void Add(int a,int FLOR,LNode *P,LNode *Q){ // if(P.Lchild) printf("P==%d (*P.Lchild).info==%d\n",P.info,(*P.Lchild).info); Q->flor=FLOR; if(P->info > a) { if(P->Lchild != NULL) Add(a,FLOR+1,P->Lchild,Q); else {P->Lchild = Q;return;} } else if(P->info < a) { if(P->Rchild != NULL) Add(a,FLOR+1,P->Rchild,Q); else {P->Rchild = Q;return;} } else if(P->info == a) return; return;}void Creat(int n){ Fin Root=NULL; int a;LNode P; scanf("%d",&a); P.info=a;P.flor=0;P.Lchild=P.Rchild=NULL;//Print(&P); Root = &P; for(int i=2,a;i<=n;i++) { scanf("%d",&a); Q[i].info=a;Q[i].Lchild=Q[i].Rchild=NULL; // P = *Root; //printf("i==%d_ a==%d_______________________________\n",i,a); // printf("P.info==%d\n",P.info); //if(P.Lchild) printf("P==%d (*P.Lchild).info==%d\n",P.info,(*P.Lchild).info); Add(a,1,&P,&Q[i]); //Print(Root); } Print(Root);}int main(){ //freopen("F:\\test.txt","r",stdin); //freopen("F:\\tsst.txt","w",stdout); int n;while(cin>>n) Creat(n); return 0;}
0 0
- 问题 M: 二叉查找树(Ⅱ)-文本显示
- LintCode:M-二叉查找树中搜索区间
- LintCode:M-不同的二叉查找树个数
- Linux 文本的^M问题
- vim显示^M问题
- 显示 ^M 的问题
- 问题 B: 进击的二叉查找树
- 查找--二叉查找树
- 二叉查找树查找后继,前驱的问题
- 关于二叉查找树的平均查找时间的问题
- CComboboxEx文本显示问题
- JavaScript查找文本并突出显示
- openjudge 文本二叉树
- 文本二叉树
- 文本二叉树
- 文本二叉树
- 3720:文本二叉树
- 【Openjudge】文本二叉树
- 2016-06-23-课程设计日志
- 《java数据结构与算法》笔记-CH4-8栈结构实现后缀表达式计算结果
- 建assets目录的方法
- compileDebugJavaWithJavac.compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
- java传参方式
- 问题 M: 二叉查找树(Ⅱ)-文本显示
- bzoj3172 单词
- html中引入css的四种方式
- MarkDown使用
- Annotation
- UVA 11093 Just Finish it up(模拟题)
- John Resig的Simple JavaScript Inheritance学习
- SDUT第一次打字练习
- 打造属于你自己的BaseAdapter