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

📄 btree.h

📁 代码注重B树插入、删除的算法逻辑
💻 H
字号:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
#define K 20
#define M 5
#define MM 6
typedef char KeyType;



struct BTreeNode
{
	int keynum;
	BTreeNode* parent;
	KeyType key[MM ];
	BTreeNode* ptr[MM];
	BTreeNode()
	{
		keynum = 0;
		parent = NULL;
		ptr[0] = NULL;
		for(int i = 0 ;i < MM ;i++)
		{
			ptr[i] = NULL;
			key[i] = '\0';
		}
	}
	//指向记录的指针,有需要时可以加上
};
typedef BTreeNode* pBTreeNode;

class Queue
{
	pBTreeNode que[K];
	int front ,rear;
	int size;
public:
	Queue()
	{front = rear = -1; size = 0;}

	bool push(pBTreeNode x);

	bool empty()
	{
		if(size == 0)
			return true;
		return false;
	}

	pBTreeNode getfront();
};

class BTree
{
	int m;
public:
	pBTreeNode T;
	BTree(pBTreeNode t):T(t),m(M){}
	BTree(){ m = M; T = NULL;}
	int BSearch(KeyType k,pBTreeNode* p);
	pBTreeNode Insert(KeyType k , bool& torf);
	int MoveKey(pBTreeNode& p);
	pBTreeNode Bmerge(pBTreeNode& p);
	bool Delete(KeyType k);
	pBTreeNode split(pBTreeNode& p);
	void show();
};

⌨️ 快捷键说明

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