资源简介
平衡树的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语言实现
- 下一篇:多进程写文件仿真
相关资源
- 车牌识别C++实现
- 校园导航c++实现
- BP神经网络VC++实现
- C++实现通用链表
- 光线追踪算法C++实现
- 基于C++实现DFT和IDFT——数字信号处理
- C++实现图书馆管理系统
- C++实现LZW压缩和解压
- 图像拼接使用VC++实现完成两幅又重叠
- 基础PageRank 算法 C++实现
- 哈希检索算法的C++实现源代码
- 角度的单位转换,从度到度分秒,C
- 局部线性回归c++实现
- 步态识别C++实现
- CYK算法的C++实现
- 多边形耳切法三角化C++实现
- minisql 用C++实现
- 删除文件恢复C++实现
- 矩阵运算C++实现.doc
- viterbi译码算法c++实现以及程序所对应
- C++实现Apriori算法
- c++实现的读写csv文件
- 用C\\C++实现操作系统经典同步问题,
- BOOTH算法C++实现
- 自己用C++实现的RC4算法
- C++实现的BP神经网络算法实现奇偶检验
- 道格拉斯压缩算法C++实现
- 深度优先搜索算法C++实现
- alphabeta剪枝算法的C++实现下棋程序
- 操作系统的理发师问题解决文件打包
评论
共有 条评论