c++ note--二叉树的实现
来源:互联网 发布:主题制作软件下载 编辑:程序博客网 时间:2024/06/05 15:19
二叉树是一种非线性的数据结构。
//定义二叉树
struct Binary_tree{char m_data;//节点存放的数据Binary_tree *m_left;//左子树节点指针Binary_tree *m_right;//右子树节点指针};
//二叉树初始化
Binary_tree * My_Init(char data){Binary_tree * m_node;m_node = new Binary_tree;m_node->m_data = data;m_node->m_left = NULL;m_node->m_right = NULL;if (m_node != NULL)return m_node;elsereturn NULL;}//二叉树查找
Binary_tree * My_find(Binary_tree * treenode,char data){Binary_tree *ptr;if (treenode == NULL)return NULL;else{if (data == treenode->m_data)return treenode;else{if (ptr = My_find(treenode->m_left, data))return ptr;else if (ptr = My_find(treenode->m_right, data))return ptr;elsereturn NULL;}}}
//二叉树插入节点
void My_insert(Binary_tree *parent_node, char parent_data,string type,char insert_data){Binary_tree *pnode, *parent;pnode = new Binary_tree;pnode->m_left = NULL;pnode->m_right = NULL;pnode->m_data = insert_data;parent = My_find(parent_node, parent_data);if (!parent){delete pnode;cout << "the parent tree node is NULL" << endl;return;}if (type == "left"){cout << "add the node to the left" << endl;if (parent->m_left)cout << "the left node is not NULL" << endl;else{parent->m_left = pnode;cout << "node add ok" << endl;}}else if (type == "right"){cout << "add the node to the right" << endl;if (parent->m_right)cout << "the right node is not NULL" << endl;else{parent->m_right = pnode;cout << "node add ok" << endl;}}elsecout << "parameter is error" << endl;}
int My_depth(Binary_tree *treenode){int depleft, depright;if (!treenode)return 0;else{depleft = My_depth(treenode->m_left);depright = My_depth(treenode->m_right);return depleft >= depright ? depleft + 1 : depright + 1;}}
//二叉树前序遍历
void My_show(Binary_tree *treenode){if (treenode){cout << treenode->m_data << endl;My_show(treenode->m_left);My_show(treenode->m_right);}}
1 0
- c++ note--二叉树的实现
- 二叉树 c实现
- 二叉树 C实现
- 二叉树 c 实现
- c语言二叉树和二叉搜索树的实现
- c语言实现的简单二叉树
- 数据结构的C实现_二叉树
- 二叉树的基本功能实现(c++)
- c语言二叉树的实现
- C语言实现二叉树的遍历
- 二叉树的简单C实现
- 哈弗曼二叉树的C简单实现
- 二叉查找树的实现(using C)
- [数据结构]C语言二叉树的实现
- 数据结构 二叉树的实现 c语言版
- 二叉树的C语言实现
- C语言一个二叉树的实现
- 【C基础】二叉搜索树的实现
- Android Studio使用lambda
- ajax异步加载TreeGrid数据,使用empty()清空原始数据
- iOS新建项目架构规范
- iOS Default-568@2x.png启动图片设置问题
- 剑指offer系列之六十一:二叉树搜索树的第k个节点
- c++ note--二叉树的实现
- CocoaPod的安装及与Swift的桥接
- ssh 10个选项
- preg_match_all()匹配
- Html 排版与标签(一)
- 【Swift】通过tag删除动态创建的UIButton
- MapReduce之Reduce端Join实现
- 【Unity NGUI】学习笔记(一):英雄选择,皮肤更换
- 在线用户显示,防止重复登录