二叉搜索树 2
来源:互联网 发布:mac对应pin码查询网 编辑:程序博客网 时间:2024/05/29 17:28
又是二叉搜索树的前序遍历。
1.建树会顺序影响整棵树的形状
2.记得释放资源
3.可以用双重指针和引用优化程序。。
代码某些printf() 是之前设置的断点,,可以无视之
#include<iostream>using namespace std;struct BST{char ch;BST *lson,*rson;BST(){ch=0; //不可能的字符 lson=rson=0;}} *root;BST *insert(BST *p,char x) //一,p不存在; 二,p存在,1.x==p->ch 2.x< 3.x> {//printf("x=%c p==%d\n",x,p);;if(p==NULL){p=new BST;p->ch=x;return p;}//printf("~");if(x<p->ch)p->lson=insert(p->lson,x);if(x>p->ch)p->rson=insert(p->rson,x);return p;}char RE[11];int nRE;void pre_order(BST *p) //一,p存在 二,p不存在{if(p)RE[nRE++]=p->ch;//cout<<"RE="<<RE<<endl;if(p->lson) pre_order(p->lson);if(p->rson) pre_order(p->rson);}void Free(BST *p){if(p->lson) Free(p->lson);if(p->rson) Free(p->rson);delete p;}int main(){int n,i,j,len;char t[11],model[11];while(scanf("%d",&n),n){root=0;scanf("%s",t);len=strlen(t);for(i=0;i<len;i++) root=insert(root,t[i]);nRE=0;pre_order(root);RE[nRE]='\0';strcpy(model,RE);for(i=1;i<=n;i++){BST *p=0;//printf("~");scanf("%s",t);len=strlen(t);// printf("!!%s\n",t);for(j=0;j<len;j++) p=insert(p,t[j]);nRE=0;pre_order(p);RE[nRE]='\0';if(strcmp(model,RE)==0) printf("YES\n");elseprintf("NO\n");Free(p);}//printf("@");Free(root);}return 0;}
阅读全文
0 0
- 2:二叉搜索树
- 二叉搜索树 2
- 最优二叉搜索树2
- 【二叉搜索数】HDU3791二叉搜索树
- 二叉树--二叉搜索树
- 【二叉树】二叉搜索树
- 二叉树- 二叉搜索树
- 【搜索树】二叉搜索树
- 搜索(2):二叉搜索树 BST 和 根插法
- &12-2 查找二叉搜索树
- 学习笔记 二叉搜索树2
- 二叉搜索树BSTree
- 二叉搜索树
- 二叉搜索树
- 二叉搜索树
- 最优二叉搜索树
- 二叉搜索树
- 二叉搜索树
- poj2777Count Color (线段树)
- ajax请求之前插入提示用户正在处理请稍等
- PARTICLE SYSTEM MESHES WILL ONLY WORK WITH EXACTLY ONE (1) SUB MESH
- Unity_脚本和物理系统的结合使用_011
- android圆形图片
- 二叉搜索树 2
- 创建一个动物类
- tensorflow1.1/构建卷积神经网络识别文本
- 题目1029:魔咒词典
- DSPF28335
- 如何理解FFT
- Unity_脚本和材质系统的结合使用_012
- PROCESS MEMORY AND MEMORY CORRUPTIONS
- 28335