📄 blinktree.h
字号:
#include<iostream>
using namespace std;
struct student{ //存放学生的记录
char name[20];
int no[20];
int birthday[10];
char sex[10];
char heath[10];
};
typedef student DataType;
//class BLinkNode的定义和实现
class BLinkNode {
public:
DataType data;
BLinkNode * lchild;
BLinkNode * rchild;
BTreeNode(){lchild=NULL;rchild=NULL;}
};
//class BLinkTree的定义
class BLinkTree {
private:
BTreeNode *head; //二叉链树的根指针
int number; //二叉树中的结点总数
public:
BLinkTree(void); //构造函数,建立空二叉链表
void Clear(void); //清空二叉链表的所有结点,成为空二叉链表
void Clear_post(BTreeNode *t,int first);
void Insert(void); //新插入学生记录,作为二叉链表的最后一个叶结点
BTreeNode *Locate(int no[20]); //非递归中序遍历按学号查找学生记录
void Delete(void); //删除元素,先查找到要删除的元素存在,然后交换到度为1的后继再删除
//简单的处理办法:删除元素只做标记,并不删除,只是在查找和显示中忽略,
//写入文件时不写入。下次读入文件建立二叉链表时不再有此元素
void Load(void); //文件中的记录按层次遍历序列建立完全二叉树
void Save(void); //按层次遍历序列将元素写入文件
void SearchNo(void); //按前序遍历次序查找
void Display(void); //分别按前序、中序、后序遍历输出
void Display_pre(BTreeNode *t);
friend istream& operator>>(istream& input,DataType& itemval);
friend ostream& operator<<(ostream& output,DataType& itemval);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -