[算法]二叉树创建
来源:互联网 发布:java 替换字符串 编辑:程序博客网 时间:2024/05/20 06:52
【链式存储结构】
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};
【层次创建二叉树】
// 创建二叉树TreeNode* CreateTreeByLevel(vector<char> num){ int len = num.size(); if(len == 0){ return NULL; }//if queue<TreeNode*> queue; int index = 0; // 创建根节点 TreeNode *root = new TreeNode(num[index++]); // 入队列 queue.push(root); TreeNode *p = NULL; while(!queue.empty() && index < len){ // 出队列 p = queue.front(); queue.pop(); // 左节点 if(index < len && num[index] != -1){ // 如果不空创建一个节点 TreeNode *leftNode = new TreeNode(num[index]); p->left = leftNode; queue.push(leftNode); } index++; // 右节点 if(index < len && num[index] != -1){ // 如果不空创建一个节点 TreeNode *rightNode = new TreeNode(num[index]); p->right = rightNode; queue.push(rightNode); } index++; }//while return root;}
-1代表NULL
创建如上二叉树输入:
15 11 20 8 14 -1 -1 -1 -1 13 -1
【先序创建二叉树】
//按先序序列创建二叉树 int CreateBTree(TreeNode*& T){ int data; //按先序次序输入二叉树中结点的值,-1表示空树 cin>>data; if(data == -1){ T = NULL; } else{ T = new TreeNode(data); //构造左子树 CreateBTree(T->left); //构造右子树 CreateBTree(T->right); } return 0; }
-1代表NULL
创建如上二叉树输入:
15 11 8 -1 -1 14 13 -1 -1 -1 20 -1 -1
1 1
- [算法]二叉树创建
- 创建二叉搜索树算法
- 算法题/创建二叉树
- 二叉树创建及遍历算法
- java创建二叉树(仅算法)
- 堆算法(二叉树创建、遍历)
- 编写创建二叉树的算法
- 二叉树的创建和相关算法
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- HDOJ 题目1795 The least one(水题)
- Android如何使用Mock来测试Files,Database和ContentProviders
- 延时函数和Timer的使用
- 读改善java程序的151个建议(8)
- Spring定时器
- [算法]二叉树创建
- 关于jquerymobile的按钮点击在ios设备上响应慢的问题
- php连接mssql
- html页面清除缓存
- FreeMarker教程
- Maven的Snapshot版本与Release版本
- 2014-12-30
- ios 弹出View同时使背影变暗
- 详解多线程MT 和 MD