二叉树复习
来源:互联网 发布:淘宝网店保证金怎么交 编辑:程序博客网 时间:2024/06/05 06:08
又开始欢乐地学习数据结构了。
今天要完成AVL树,先写个binary tree玩玩吧!
#include <cstdio>#include <stack>struct AVLNode{AVLNode* m_pLeft;AVLNode* m_pRight;int m_Value;int m_Bf;AVLNode(): m_pLeft(NULL), m_pRight(NULL), m_Value(-1), m_Bf(0){}AVLNode(int aValue): m_pLeft(NULL), m_pRight(NULL), m_Value(aValue), m_Bf(0){}};AVLNode* FindNode(AVLNode* apTree, int aValue){AVLNode* lpTree = apTree;while(NULL != lpTree){if (lpTree->m_Value == aValue){return lpTree;}else if (lpTree->m_Value > aValue){lpTree = lpTree->m_pLeft;}else{lpTree = lpTree->m_pRight;}}return lpTree;}void Insert(AVLNode*& apTree,int aValue){AVLNode* lpTree = apTree;AVLNode* lpNewNode = new AVLNode(aValue);if (NULL == lpNewNode){printf("Create NewNode failed.\n");return;}if (NULL == lpTree){apTree = lpNewNode;}else{AVLNode* lpParentNode = lpTree;while(NULL != lpTree){if (lpTree->m_Value == aValue){printf("Dupilate data.\n");return ;}else if (lpTree->m_Value > aValue){lpParentNode = lpTree;lpTree = lpTree->m_pLeft;}else{lpParentNode = lpTree;lpTree = lpTree->m_pRight;}}if (lpParentNode->m_Value > aValue){lpParentNode->m_pLeft = lpNewNode;}else{lpParentNode->m_pRight = lpNewNode;}}}void PrintNode(AVLNode* apNode){printf("%d ", apNode->m_Value);}void PrintTree(AVLNode* apTree){AVLNode* lpNode = apTree;std::stack<AVLNode*> lNodeStack;while(NULL != lpNode || !lNodeStack.empty()){while(NULL != lpNode){lNodeStack.push(lpNode);lpNode = lpNode->m_pLeft;}if (!lNodeStack.empty()){lpNode = lNodeStack.top();PrintNode(lpNode);lNodeStack.pop();lpNode = lpNode->m_pRight;}}}int main(){AVLNode* lpTree = NULL;Insert(lpTree,15);Insert(lpTree,3);Insert(lpTree,5);Insert(lpTree,7);Insert(lpTree,8);Insert(lpTree,10);PrintTree(lpTree);}
- 二叉树知识复习
- 二叉树复习
- 【数据结构二叉树复习】
- 二叉树 复习&学习
- 二叉树复习笔记
- 平衡二叉树复习
- 二叉树复习
- 二叉树-经典问题复习
- 《数据结构》复习之二叉树
- Java复习之二叉树
- 线索二叉树(复习)
- 二叉树的各种遍历,二叉树改链表,二叉树复习
- [数据结构复习]树_二叉树
- 数据结构复习(完全二叉树判定)
- (笔试前复习)二叉树运算
- 复习数据结构之二叉查找树
- 二叉树的前中后序非递归(复习)
- 《数据结构》复习笔记--二叉树1
- 好好学习,从今开始!
- 小记
- Activity反馈传递参数setResult千能方法
- 文件上传验证绕过技术总结
- java重点总结
- 二叉树复习
- 关于extern
- Repo命令介绍
- 数字接口系列文章:SPI 总线
- Linux下minicom的配置和使用方法
- 颠覆式改变的丰田全新威驰VIOS
- Jsp中9大内建对象
- js dwz框架 多页面id,函数名称冲突问题
- Template Method模式