二叉查找(排序)树
来源:互联网 发布:mac液体唇膏三文鱼粉 编辑:程序博客网 时间:2024/05/17 23:22
#include <iostream>#include <stack>using namespace std;typedef struct Node {int value;struct Node *left;struct Node *right;}Node, *ptrNode;class BinaryTree {private:ptrNode tree;public:void init();bool isEmpty();void add(int value);void traverse();};void BinaryTree::traverse() {if (!isEmpty()) {stack<ptrNode> s;ptrNode p = tree;while(p || !s.empty()) {if ( p != NULL) {if (p->left != NULL) {s.push(p);p = p->left;} else {std::cout << p->value << " ";p = p->right;}} else {p = s.top();s.pop();std::cout << p->value << " ";p = p->right;}}}}void BinaryTree::init() {tree = NULL;}bool BinaryTree::isEmpty() {if (tree == NULL)return true;return false;}void BinaryTree::add(int value) {ptrNode ptr = new Node();ptr->value = value;ptr->left = NULL;ptr->right = NULL;if (isEmpty()) {tree = ptr;} else {ptrNode *p = &tree;while (*p != NULL && (*p)->value != value) {if (value < (*p)->value) {p = &(*p)->left;} else {p = &(*p)->right;}}if (*p == NULL) {*p = ptr;}}}int main() {BinaryTree *bt = new BinaryTree();bt->init();bt->add(62);bt->add(88);bt->add(58);bt->add(47);bt->add(35);bt->add(73);bt->add(51);bt->add(99);bt->add(37);bt->add(93);bt->traverse();return 0;}
0 0
- 二叉查找(排序)树
- 二叉查找(排序)树
- 二叉排序(查找)树
- 二叉排序(查找)树
- 二叉排序/查找树
- 二叉排序查找树
- 排序二叉树查找
- 二叉树排序查找
- SICP 建立二叉查找(排序)树
- 二叉排序(查找,搜索)树详解
- Java基础 - 排序二叉树(二叉查找树)
- 二叉查找(排序)树——递归查找
- 二叉查找树实现排序
- 算法-二叉树查找排序
- 二叉排序平衡树查找-动态查找
- 排序算法之二叉查找树排序
- java 二叉查找树(搜索树、排序树)实现
- 查找算法(普通、折半、排序二叉树、哈希)
- Android中使用gson解析JSON
- Java获取数字中单个数字,实例 获取水仙花数
- hadoop学习-倒排索引
- linux 下 opendir 和 readdir 函数的应用
- leetcode: Trapping Rain Water
- 二叉查找(排序)树
- 利用Lightroom添加边框及批量导出
- Java -- 在Eclipse上使用XFire开发WebService
- 《深入Linux设备驱动程序机制》学习心得---字符设备驱动原理图解(写得好)
- Cantor的数表 数学
- 【笔记】CCS4 出现 warning: entry-point symbol other than "_c_int00" specified: "code_start" 的解决方法
- 财经郎眼:房价要跌了吗
- source insight配置(vim键盘和配色)
- python爬虫初学(2)