注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HT·生活

123

 
 
 

日志

 
 

创建删除一棵树  

2015-06-10 11:12:42|  分类: 常用算法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
用先序遍历的方式创建一棵树,创建成功后可以在内存里面查看,最后调用freeTree把整棵树销毁掉
c++代码实现

/*
* time : 2015-6-10
* author: ht http://weibo.com/wanghaitao8118
* comment: 比较两棵树是否相等
*/


#include<iostream>
#include<string>
#include<vector>
using namespace std;


//Definition for a binary tree node.
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

// create a tree with preorder traverse
TreeNode * createTree(TreeNode*current, int&index,vector<int>value,int nums)
{
//创建一棵树,遇到-1就是终止节点,方式为先序遍历
if (value[index] != -1)
{
current = new TreeNode(value[index]);
index++;
if (index < nums) current->left = createTree(current->left,index,value,nums);
if (index < nums)current->right = createTree(current->right,index,value,nums);
}
else
{
current = NULL;
index++;
}
return current;
}
void freeTree(TreeNode*root)
{
if (root->left) freeTree(root->left);
if (root->right) freeTree(root->right);
delete root;
root = NULL;
}
ain()
{
vector<int> value = { 1, 2, 4, -1, -1, 5, -1, -1, 3, 6, -1, -1, 7, -1, -1 };
TreeNode*root = NULL;
int index = 0;
int nums = value.size();
root = createTree(root,index,value,nums);
freeTree(root);
return 0;
}




  评论这张
 
阅读(47)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017