博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树遍历
阅读量:6515 次
发布时间:2019-06-24

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

const int PREORDER=0;const int INEORDER=1;const int POSTEORDER=2;const bool RECURSIVE=true;const bool NONRECURSIVE=false;class MyBinaryTree{public:    class Node{    public:        char data;        Node *lchild,*rchild,*parent;        Node(char c){            data = c;            lchild = rchild = parent = NULL;        }    };    class MyStack{        vector
st; int pt; public: MyStack(){ st = *(new vector
()); pt = -1; } void pop(){ if(pt==-1) return; st.pop_back(); pt--; } void push(Node *p){ pt++; st.push_back(p); } Node * top(){ if(pt==-1)return NULL; else return st[pt]; } bool isEmpty(){ if(pt==-1)return true; else return false; } }; MyBinaryTree(char * str,int n){ root = NULL; root = createTree(str,n,1); } void traverse(int order,bool recursive){ if(recursive){ switch (order){ case PREORDER: cout<
<<"此乃递归先序"<
lchild = createTree(str,n,2*i); if(cur->lchild)cur->lchild->parent = cur; cur->rchild = createTree(str,n,2*i+1); if(cur->rchild)cur->rchild->parent = cur; return cur; }else{ return NULL; } } void deleteTree(Node * r){ if(r){ deleteTree(r->lchild); deleteTree(r->rchild); delete r; } } void recPreorder(Node * r){ if(r){ cout<
data<<" "; recPreorder(r->lchild); recPreorder(r->rchild); } } void recInorder(Node * r){ if(r){ recInorder(r->lchild); cout<
data<<" "; recInorder(r->rchild); } } void recPostorder(Node * r){ if(r){ recPostorder(r->lchild); recPostorder(r->rchild); cout<
data<<" "; } } void nonRecPreorder(Node * r){ Node * p=r; MyStack st; while(p || !st.isEmpty()){ while(p){ cout<
data<<" "; st.push(p); p=p->lchild; } if(!st.isEmpty()){ p=st.top(); st.pop(); p=p->rchild; } } } void nonRecInorder(Node * r){ Node * p =r; MyStack st; while(p || !st.isEmpty()){ while(p){ st.push(p); p=p->lchild; } while(!st.isEmpty()){ p = st.top(); cout<
data<<" "; p=p->rchild; st.pop(); if(p){ break; } } } } void nonRecPostorder(Node * r){ Node *p = r,*pre =NULL; MyStack st; st.push(p); while(!st.isEmpty()){ p=st.top(); if((p->lchild==NULL && p->rchild==NULL) || (pre!=NULL && (pre==p->lchild || pre==p->rchild))){ cout<
data<<" "; st.pop(); pre = p; }else{ if(p->rchild)st.push(p->rchild); if(p->lchild)st.push(p->lchild); } } }};void getRandom(){ srand((int)time(0)); cout<
traverse(POSTEORDER,RECURSIVE); bt->traverse(POSTEORDER,NONRECURSIVE); bt->test(); delete bt; cout<<"(ˉ▽ ̄~) ~~";}

 

转载于:https://www.cnblogs.com/kateblog/p/5512049.html

你可能感兴趣的文章
动态应用加固(DAR)技术破局登录信息泄露难题
查看>>
大数据助力 智慧环保“十三五”前景广阔
查看>>
智慧计算战略再推进 浪潮新一代服务器M5发布在即
查看>>
WiFi卡慢顿赖路由?这个锅得手机背
查看>>
说说云计算与移动管理
查看>>
T-Mobile美国使用28GHz频段测试5G
查看>>
如何缓解影子云服务安全风险?
查看>>
补天白帽大会:建企业与白帽协同机制,全方位解决网络安全隐患
查看>>
Bossies 2016:最佳开源大数据工具
查看>>
银行卡信息安全事件频发 互联网站成数据泄露"重灾区"
查看>>
云服务器 ECS 使用OpenAPI管理ECS:使用OpenAPI弹性创建ECS实例
查看>>
iOS10新特性提升安全 连接WiFi弹出提醒
查看>>
象云2.0产品发布暨国产操作系统首次入驻公有云
查看>>
一个完美DCIM应该具备的功能与价值
查看>>
《SEO的艺术(原书第2版)》——1.5 人们如何搜索
查看>>
经验贴 | 电梯监控的布线技巧
查看>>
唐山联通与丰南区政府签署“智慧城市”战略合作协议
查看>>
研究显示:广告拦截应用正在破坏互联网
查看>>
优云·小课堂 第八期:运维自动化的魅力
查看>>
稳定+性能+价格,阿里云发力ECS企业级产品
查看>>