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

📄 generalizedlists.h

📁 数据结构清华大学出版社出版 有书上例子的源代码
💻 H
字号:
#ifndef __GENERALIZEDLISTS_H_
#define __GENERALIZEDLISTS_H_
#include <string>
using namespace std;

class Personnel
{
  public:
	Personnel(string st);//有参构造函数,把st表示的信息转化为人员的相应信息
	Personnel(){personnelinfo="";personnelname=""; tag=0;} //无参构造函数,初始化人员信息
    string GetPersonnelinfo();//返回学生班级和教师职称信息
    int GetTag();//返回人员类型
    string GetPersonnelname(); //返回人员姓名

  private:
    int tag;    //标识人员的类型
    string personnelinfo; //学生班级和教师职称
    string personnelname; //人员姓名
};

template <class T>
struct  GLNode
{
    int  tag;                //标志域,用于区分元素结点和表结点
    T data;                  //data是元素结点的数据域
    struct atom
    {
      GLNode *hp, *tp;       //hp和tp分别指向表头和表尾
    } ptr;

};

template <class T>
class GLists
{
public:
  GLists(){ls = NULL;outflag =false;Numbergraduate =0;NumberStudent=0;}//无参构造函数,初始化为空的广义表
  GLists(string st);//有参构造函数,按广义表的书面格式建立广义表的存储结构
  GLists(GLists ls1, GLists ls2);   //有参构造函数,用表头ls1和表尾ls2构造广义表
  ~GLists( ){delete [] ls;}   //析构函数,释放广义表中各结点的存储空间
  int Depth( GLNode<T> *ls );   //求广义表的深度
  GLists<T> *Head( );  //求广义表的表头
  GLists<T> *Tail( );   //求广义表的表尾
  void Prnt(); //将广义表显示出来
  void  QueryInfo(GLNode<T>* ls,string manname);//查询ls所指的广义表中的姓名为manname的信息
  void  StatisticInfo(GLNode<T>* ls,string mannameg);//统计ls所指的广义表中的姓名为manname的老师所带的学生人数
  void  StudentInfo(GLNode<T>* ls,string mannameg);//显示ls所指的广义表中的姓名为manname的老师所带的学生
  bool  DelStudent(GLNode<T>* ls,string mannameg); //删除ls所指的广义表中的姓名为manname的学生
  bool  InsertStudent(GLNode<T>* ls,string mannameg,string stuinfo); //把学生信息为stuinfo的学生插入到ls所指的广义表中的姓名为manname的后边
  void  Setinfo();//初始化广义表的信息
  void  Outinfo();//输出广义表的信息
  GLNode<T>* Getls();//输出广义表的ls成员
  void OutStatisticinfo() ;//显示统计姓名为manname的老师所带的学生人数的信息

private:
  GLNode<T>* ls;  //ls是指向广义表的头指针
  string stprt;//显示一些操作信息
  void Server(string &st,string &hst); // 从st中取出第一成员存入到hst,其余的成员留在st中
  GLNode<T>* Crtlists(string st);//把广义表的书面格式st转化为广义表的头尾存储结构
  void Ena(string str);//把str表示信息存储到stprt中,已备以后显示
  void Prt(GLNode<T>* ls);//将ls所指的广义表显示出来
  int NumberStudent; //记录本科生的人数
  int Numbergraduate;//记录研究生的人数
  bool outflag ;//开关标识
};

#endif

⌨️ 快捷键说明

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