九度OJ 教程35 排序二叉树的建立与遍历。
来源:互联网 发布:mars软件下载 编辑:程序博客网 时间:2024/06/10 09:47
题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=34
//九度OJ 教程35 排序二叉树的建立与遍历。//http://ac.jobdu.com/problem.php?cid=1040&pid=34#include <stdio.h>typedef struct tt{int data;struct tt *l,*r;}tt,*tp;void LNR(tt *root);void LRN(tt *root);void NLR(tt *root);void tfree(tt *root){if(root==NULL)return;tfree(root->l);tfree(root->r);free(root);}int main(){int n;while(~scanf("%d",&n)){tp root=(tt *)malloc(sizeof(tt));tp p=NULL,q2=NULL,q1=NULL;int i,j,k,flag;scanf("%d",&(root->data));root->l=root->r=NULL;for(i=1;i<n;i++){flag=1;q1=NULL;q2=root;p=(tt *)malloc(sizeof(tt));p->l=p->r=NULL;scanf("%d",&(p->data));while(q2!=NULL){if(p->data==q2->data)//若存在相等的元素,设置flag=0,然后直接break{flag=0;break;}if(p->data>q2->data){q1=q2;q2=q2->r;}else {q1=q2;q2=q2->l;}}if(flag)//若存在相等的元素,直接忽略掉,free()就好了。{if(p->data>q1->data){q1->r=p;}else q1->l=p;}else free(p);}NLR(root);printf("\n");LNR(root);printf("\n");LRN(root);printf("\n");tfree(root);}return 0;}void LNR (tt *root){if(!root)return;LNR (root->l);printf("%d ",root->data);LNR (root->r);}void LRN (tt *root){if(!root)return;LRN(root->l);LRN(root->r);printf("%d ",root->data);}void NLR(tt *root){if(!root)return;printf("%d ",root->data);NLR(root->l);NLR(root->r);}
- 九度OJ 教程35 排序二叉树的建立与遍历。
- 二叉搜索树的建立与遍历 九度oj
- 九度OJ 教程36 排序二叉树的建立与比较是否相同。
- 二叉树的建立与遍历(山东理工OJ)
- 九度OJ 1078 二叉树遍历
- 九度OJ 1078 二叉树遍历
- 九度OJ-1078 二叉树遍历
- 九度oj 1184 二叉树遍历
- 九度oj-1078-二叉树遍历
- 九度OJ - 1078 - 二叉树遍历
- 九度OJ - 1184 - 二叉树遍历
- 九度OJ-1078-二叉树遍历
- 排序二叉树的建立与中序遍历
- 九度OJ 1078:二叉树遍历 (二叉树)
- 九度OJ 1184:二叉树遍历 (二叉树)
- 九度OJ 1009: 二叉搜索树 两棵树的判等+二叉搜索树的建立
- 九度OJ 1184 二叉树递归创建遍历
- 九度oj 题目1078:二叉树遍历
- Android应用中读取<meta-data>元素的数据
- 彻底理解PHP的SESSION机制
- 美工之道-调色
- 最小公倍数求解猪的安家
- android 禁止EditText自动弹出键盘!!
- 九度OJ 教程35 排序二叉树的建立与遍历。
- 《持续交付》笔记——第3章 持续集成
- category尝试
- 递归求解母牛生小牛问题
- MFC中ListBox控件的使用
- 开机速度优化-ODEX化
- C++下遍历文件夹
- (总结)Nginx配置文件nginx.conf中文详解
- RDLC报表中使用自定义函数