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

📄 guangyi.h

📁 一本数据结构的经典书籍-数据结构算法程序集里
💻 H
字号:
//广义表的类定义guangyi.h
#include<string.h>
#include<stdio.h>
#include<math.h>
typedef enum{INTGR,CH,LST}ElemTag;
class GList
{public:
  ElemTag utype;
  GList *first;
  union
  { int intinfo;
    char charinfo;
    GList *hlink;
  };
//构造函数
  GList(){}
//返回由elem指示的表元素的值
  GList &Info(GList *&elem);
//返回表元素elem的元素值的数据类型
  int nodetype(GList *elem) {return elem->utype;}
//将由elem指示的表元素的值修改为x
  GList &setInfo(GList *&elem,GList &x);
//判断广义表是否相等的重载函数
  int operator ==(GList &m);
//判断广义表是否相等
  int equal(GList *s,GList *t);
//返回由ls指示的广义表的第一个元素的值
  GList &Head(GList *&ls);
//返回广义表除第一个元素以外其它元素组成的表
  GList *Tail();
//返回广义表的第一个元素
  GList *First();
//返回由elem指示的表元素的直接后继元素
  GList *Next(GList *elem);
//返回一个以x为头,由ls指示的广义表为尾的新表
  GList *Addon(GList *ls,GList &x);
//由ls指示的广义表的复制
  GList *Copy(GList *ls);  
//求由ls指示的非递归表的深度
  int depth(GList *&ls);
//判断广义表是否为空
  bool GlistEmpty() {return first==NULL;}
//将广义表的头元素重置为x
  void setHead(GList *&ls,GList &x);
//将elem2插到表中元素elem1后
  void setNext(GList *elem1,GList *elem2);
//将x定义为由ls指示的广义表的尾
  void setTail(GList *&ls,GList &x);
//插入元素x作为由ls指示的广义表的第一元素
  GList *InsertGL(GList *&ls,GList &x);
//删除广义表中含数x或结点x的操作
  GList *delvalue(GList *&ls,int x);
//删除广义表中含数x或结点x的操作
  GList *delvalue(GList *&ls,char x);
//S是广义表的书写形式串,由S创建广义表GL
  GList *CreateGList(char *&s);
//建立广义表时调用的过程
  int sever(char *&str1,char *&hstr1);
//广义表的输出
  void prtGlist(GList *h);
};

⌨️ 快捷键说明

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