资源简介
平衡树的c++实现,有添加元素和删除元素功能,可以在增加或删除元素过程中保持平衡树

代码片段和文件信息
#include “OurCSCE310Tree.h“
#include
#include
using namespace std;
/*
class OurCSCE310Tree{
public:
OurCSCE310Tree(void);
OurCSCE310Tree(OurCSCE310Tree&);
~OurCSCE310Tree(void);
void operator=(OurCSCE310Tree&);
OurCSCE310Tree* getParent(void);
OurCSCE310Tree* getLeft(void);
OurCSCE310Tree* getRight(void);
int getValue(void);
void setParent(OurCSCE310Tree*);
void setLeft(OurCSCE310Tree*);
void setRight(OurCSCE310Tree*);
void setValue(int);
void insert(int);
void printPreorder(void);
void printInorder(void);
void printPostorder(void);
void rotateLeft(void);
void rotateRight(void);
void rotateLeftRight(void);
void rotateRightLeft(void);
void deleteNode(int);
int getHeight();
private:
int value;
OurCSCE310Tree* parent;
OurCSCE310Tree* left;
OurCSCE310Tree* right;
};
*/
OurCSCE310Tree::OurCSCE310Tree(){
value = 0;
parent = NULL;
left = NULL;
right = NULL;
}
OurCSCE310Tree::OurCSCE310Tree( OurCSCE310Tree& other){
delete parent;
delete left;
delete right;
value = other.getValue();
parent = other.getParent();
left = other.getLeft();
right = other.getRight();
}
void OurCSCE310Tree::operator=( OurCSCE310Tree& other){
delete parent;
delete left;
delete right;
value = other.getValue();
parent = other.getParent();
left = other.getLeft();
right = other.getRight();
}
OurCSCE310Tree::~OurCSCE310Tree(){
delete left;
left = NULL;
delete right;
right = NULL;
value = 0;
}
OurCSCE310Tree* OurCSCE310Tree::getParent(){
return parent;
}
OurCSCE310Tree* OurCSCE310Tree::getLeft(){
return left;
}
OurCSCE310Tree* OurCSCE310Tree::getRight(){
return right;
}
int OurCSCE310Tree::getValue(){
return value;
}
void OurCSCE310Tree::setParent( OurCSCE310Tree* par ){
parent = par;
}
void OurCSCE310Tree::setLeft( OurCSCE310Tree* lft ){
left = lft;
}
void OurCSCE310Tree::setRight( OurCSCE310Tree* rght ){
right = rght;
}
void OurCSCE310Tree::setValue( int val ){
value = val;
}
void OurCSCE310Tree::insert( int val ){
if( !getValue() ){
setValue( val );
}
else if( ( val < getValue() && !getLeft() ) || ( val < getValue() && !getLeft()->getValue() ) ){
left = new OurCSCE310Tree();
left->setParent( this );
left->setValue( val );
}
else if ((val > getValue() && !getRight()) || (val > getValue() && !getRight()->getValue()))
{
right = new OurCSCE310Tree();
right->setParent( this );
right->setValue( val );
}
else if( val < getValue() ){
getLeft()->insert( val );
}
else{
getRight()->insert( val );
}
if( getLeft() && getLeft()->getRight() && !getRight()/*1*/ || getLeft() && getLeft()->getRight() && getRight() && getLeft()->getHeight() > getRight()->getHeight() + 1/*2*/ && getLeft()->getRight()->getHeight() > getLeft()->getLeft()->getHeight() + 1 /*3*/){
rotate
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14 2018-04-24 12:15 add.txt
文件 26 2018-04-24 12:15 delete.txt
文件 9737 2018-04-24 12:49 OurCSCE310Tree.cpp
文件 840 2018-04-20 17:09 OurCSCE310Tree.h
- 上一篇:大数计算器的c语言实现
- 下一篇:多进程写文件仿真
相关资源
- VC++实现CMD命令执行与获得返回信息
- 23种设计模式(C++实现版本
- c++实现的文件上传服务器
- 一个C++实现的源代码行数统计工具
- 纯C++实现的截屏
- C++实现21点游戏
- tiny+编译器C++实现
- 数值分析算法程序设计 C++实现
- mysql+dev c++实现订单管理系统
- VC++实现RSA加密算法
- C++实现RSA加密解密算法
- C++实现的斗地主游戏
- 企业人事管理系统c++实现
- 地铁计费系统C++实现dijkstra算法
- C++实现的蓝牙应用程序框架-BlueSolei
- arp欺骗C++实现
- C++实现监控IP数据包
- 粒子滤波器+目标跟踪的C++实现,VS2
- C++实现的职工管理系统
- 格雷码图片生成与保存C++实现代码
- MFC VC++实现Sierpinski分形图像
- c++实现ECC加解密
- 求点介数C++实现 Betweenness Centrality
- C++实现AES、DES加密算法含MFC界面
- 3DES加密算法C++实现
- C++实现多元线性回归 可指定任意几元
- PCA、KPCA数据降维C++实现
- BP算法的C++实现
- c++实现图最短路径
- C++实现的改进遗传算法
评论
共有 条评论