二叉树
GoJawee
这个作者很懒,什么都没留下…
展开
-
二叉树的先序/中序/后序(递归、非递归)+层序遍历
#include<iostream>#include<stack>#include<vector>using namespace std;typedef struct TreeNode{ int data; struct TreeNode* lchild; struct TreeNode* rchild;}TreeNode;void pretravel(TreeNo原创 2017-09-14 13:01:44 · 449 阅读 · 0 评论 -
序列化(层序遍历)
使用层序遍历去遍历每一个节点,当该结点为NULL时,str = str+"#!"当该结点非NULL时,str = str+该节点的data+"!"#include <iostream>#include <vector>#include<queue>#include <string>using namespace std;typedef struct TreeNode{ str原创 2017-09-16 20:31:22 · 906 阅读 · 0 评论 -
反序列化(先序)——split : string-->vector<string>
反序列化:将string生成二叉树先序反序列化操作具体步骤:(1)先将string字符串进行分割,生成多个string构成的集合保存在vector<string>中;(2)将vec<string>中的每一个元素存入到queue<string>中/*****************************************************/(3)对queue<string>队列进行序原创 2017-09-14 19:08:34 · 639 阅读 · 0 评论 -
反序列化(先序)
要求:将vector<string> str容器中的字符串生成二叉树解答: 依次获取每一个字符串str[index],进行序列化操作: 先用str[index]生成根节点T 再递归生成左子树T->lchild 再递归生成右子树T->rchile 最后返回生成的整棵树的根节点T#include <iostream>using原创 2017-09-14 20:19:57 · 516 阅读 · 0 评论 -
反序列化(层序)
将序列生成层序遍历的二叉树原创 2017-09-16 20:35:31 · 443 阅读 · 0 评论 -
序列化(先序)
先序遍历的序列化操作:使用先序遍历遍历每一个节点,(1)当该结点的值为NULL时,返回"#!"(2)当该结点的值不为NULL时,str = 当前节点的data + "!";(3)递归遍历左子树、右子树,最后返回Tstring preSerialize(TreeNode* T) //序列化{ if (!T) return "#!"; string str =原创 2017-09-14 20:47:09 · 404 阅读 · 0 评论 -
判断是否是平衡二叉树
#include<math.h>#include <iostream>#include<queue>#include <string>using namespace std;typedef struct TreeNode{ string data; struct TreeNode* lchild; struct TreeNode* rchild;}TreeNode原创 2017-09-18 08:40:54 · 798 阅读 · 0 评论