⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.h

📁 使用VS.NET开发的数据结构红黑树可视化图形界面演示。可以进行节点的添加及删除。
💻 H
字号:
// MainFrm.h : CMainFrame 类的接口
//


#pragma once


#define BLACK 0
#define RED 1

class RBTreeNode
{
	public:
		RBTreeNode();
		~RBTreeNode();
		
		

		RBTreeNode * leftchild;
		RBTreeNode * rightchild;
		RBTreeNode * parent;
		long GetSize(){return size;}
		long GetValue(){return value;}
		long GetLevel(){return level;}
		long GetColor(){return color;}
		long GetX(){return x;}
		long GetY(){return y;}

		long size;
		long value;
		long level;
		int color;
		long x;
		long y;
};

class RBTree
{
	public:
		RBTree();
		~RBTree()
		{
			DeleteTree(root);
		}
		int LeftRotate(RBTreeNode * x);
		int RightRotate(RBTreeNode * x);
		int Fixlevel(RBTreeNode * z);
		int Fixlevel()
		{
			root->level=1;
			Fixlevel(root);
			return 0;
		}
		int DeleteTree(RBTreeNode * z);
		
		int InsertNode(RBTreeNode * z);
		int DeleteNode(RBTreeNode * z);
		int InsertFixColor(RBTreeNode * z);
		int DeleteFixColor(RBTreeNode * z);
		RBTreeNode * Minimum(RBTreeNode * z);
		RBTreeNode * Maximum(RBTreeNode * z);
		RBTreeNode * Successor(RBTreeNode * x);
		RBTreeNode * FindNode(long value);
		RBTreeNode * OS_Select(RBTreeNode * z,long i);
		RBTreeNode * OS_Select(long i)
		{
			return OS_Select(root,i);
		};
		
		long OS_Rank(RBTreeNode * x);

		int BuildTree();
		int PrintTree(RBTreeNode * z);
		int PrintTree();
		int DeleteNode(long key);
		int DeleteNode();
		int InsertNode(long num);
		int FixPosition(long left,long right);
		int FixPosition(RBTreeNode * z,long width);

		RBTreeNode * GetRoot(){return root;}

		int Show(RBTreeNode * z);


	private:
		RBTreeNode * root;
	public:
		RBTreeNode * Nil;
};


class CMainFrame : public CFrameWnd
{
	
protected: // 仅从序列化创建
	CMainFrame();
	DECLARE_DYNCREATE(CMainFrame)

// 属性
public:

// 操作
public:

// 重写
public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

// 实现
public:
	virtual ~CMainFrame();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:  // 控件条嵌入成员
	CStatusBar  m_wndStatusBar;
	CToolBar    m_wndToolBar;

// 生成的消息映射函数
protected:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnInsert();
	afx_msg void OnDelete();
	afx_msg void OnOsSelect();
	afx_msg void OnOsRank();
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -