基于模板技术的多层次可视化数据结构实验环境研究
可视化数据结构实验环境VCDS v1.0
编程实验(C++版)
(编号:20**0202A)
合肥工业大学
《数据结构》课程组
20**年7月15日
第1章  DSSTL类库
1.1 DSSTL类库概述
  数据结构基础类模板库。这是实验环境所用到的最重要也是最基础的类库,其中类名全部以大写字母D开始,在本文中将此类库简称为D类库。D类库全部以标准C++语言编写,适合于所有标准C++编译器且不依赖第三方类库。它定义了每种数据结构的最基本的物理实现部分,提供了数据结构最基本的逻辑操作,如堆栈的入栈和出栈,并采用了C++输入输出流机制对数据结构进行存储。
  在数据层的设计中体现了C++的虚继承与继承的特点,采用模板技术实现多种数据类型的代码封装,大大减少了代码的冗余,整个数据层的设计学习VC中的MFC类库的特点达到了结构明确,层次清晰,类与类之间的关系紧密。由于整个软件中的数据结构较多有八大模块,为了很好的实现类的层次架构,设计过程中设置了数据层基类DObject,然后依据具体模块设置相应的类层次,其结构框架见附录一。
1.2 DObject
  DOject是数据结构标准摸班类库DSSTL中所有类的基类,定义了许多公用的虚函数。这些虚函数有相当一部分是纯虚函数,因此无法直接使用DOject来声明对象。常用的方法是使用DOject指针。
  1.2.1 类层次关系
  正像前面介绍的那样,DObject是整个数据层的基类,包含着各个模块的公共操作接口,是一个虚类。
  1.2.2 类成员
  virtual void Output(ostream& out) const;
  ——流输出函数,保存类中数据
  virtual void Input(istream& in);
  ——流输入函数,读取数据
  virtual void Save(char* fname) const;
  ——将数据保存到文件中
  virtual void Load(char* fname);
  ——从文件中取出数据
1. 3线性表
  1.3.1 DList
  DList是线性表逻辑类。它是具体存储类型线性表的基类,同样它内部封装着底层具体的线性表的公共操作接口。
1.3.1.1类层次关系
  DObject
    ∟DList
  相关类:DObject
  头文件:DList.h
1.1.1.1  成员说明
  SetNull
原型:void SetNull()
用法:清除线性表内容,无返回值。
参数:无
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list.SetNull();
  }
  输出:无
  RemoveAll
原型:virtual void RemoveAll ()
用法:将线性表中的数据全部移除,无返回值
参数:无
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list.RemoveAll();
  }
  输出:无
  IsEmpty
原型:virtual bool IsEmpty ()const
用法:判断线性表是否为空,返回类型为布尔型
参数:无
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list. IsEmpty ();
  }
  输出:ture或着false
  Length
原型:virtual int Length ()const
用法:判断线性表的长度,返回值为整型
参数:无
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list. Length ();
  }
  输出:整型数值
      Search
原型:virtual int Search (const T&x)const
用法:在线性表中查元素x,返回值为整型
参数:模板类型参数
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list. Search (23);
  }
  输出:在线性表中查到数据23所在的位置,查不到时返回-1。
  Insert
原型:virtual void Insert( int k, const T&x)
用法:在线性表中第k个位置插入元素x,无返回值
参数:模板类型参数
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list. Insert(2,56);
  }
  输出:无
      Delete
原型:virtual void Delete (int k, T&x)
用法:删除线性表中的第k个元素,将删除的元素放到变量x中,返回值无
参数:模板类型参数可以是整型,字符型,双精度类型,字符串类型等。
示例:
#include “DList.h”
void main()
{  Dlist<int> list ;
  list. Delete(2,35);
  }
  输出:无
  1.3.2 DListSeq
  DListSeq是线性表模板类,此类命名规则是因为存储结构是顺序表结构。它是线性表的具体实现的类。
1.3.2.1类层次关系
  DOject
   ∟DList
     ∟DListSeq
  相关类:Doject,DList
  头文件:DListSeq.h
1.3.2.2成员说明
  SetNull
原型:void SetNull()
用法:清除线性表内容,无返回值。
参数:无
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listseq ;
  listseq.SetNull();
  }
  输出:无
参阅:DList::SetNull
  RemoveAll
原型:void RemoveAll ()
用法:删除顺序表存储的线性表中的所有数据,返回值无
参数:无
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listseq ;
  listseq.RemoveAll();
  }
  输出:无
   参阅:DList::RemoveAll
  Set
原型:void Set( int MaxListSeqSize, bool copy = true )
用法:重新设置顺序表线性表的最大长度,返回值无
参数:MaxListSeqSize:设置顺序表存储的线性表的最大长度,布尔变量:copy为true时,将原线性表中的数据拷贝到设置为新长度的线性表中,否则该线性表清空,最大长度设置为MaxListSeqList
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listseq ;
  listseq.Set(10,true);
  }
  输出:无
  IsEmpty
原型:virtual bool IsEmpty ()const
用法:判断线性表是否为空,返回类型为布尔型
参数:无
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listSeq ;
  listSeq. IsEmpty ();
  }
  输出:ture:线性表空或着false:线性表不为空
参阅:DList::IsEmpty
  Length
原型:virtual int Length ()const
用法:判断线性表的长度,返回值为整型
参数:无
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listSeq ;
  listSeq. Length ();
  }
  输出:整型数值
   参阅:DList::Length
    Search
原型:virtual int Search (const T&x)const
用法:在线性表中查元素x,返回值为整型
参数:模板类型参数针对对象建立的类型而确定
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listSeq ;
  listSeq. Search (a);
  }
  输出:在线性表中查到字符型数据a的位置,查失败时返回-1。
  Insert
原型:virtual void Insert( int k, const T&x)
用法:在线性表中第k个位置插入元素x,无返回值
参数:模板类型参数:依据建立的对象类型而定
示例:
#include “DListSeq.h”
void main()
{  DlistSeq<char> listSeq ;
  listSeq. Insert(6,y);
  }
  输出:无
  Delete
原型:virtual void Delete (int k, T&x)
用法:删除线性表中的第k个元素,将删除的元素放到变量x中,返回值无
参数:模板类型参数可以是整型,字符型,双精度类型,字符串类型等。
示例:
#include “DList.h”
void main()
{  Dlist<char> list ;
      char x;
  list. Delete(2,x);
  }
  输出:无
        参阅:DList::Delete数据可视化什么意思
  Get
原型:virtual bool Get( int k, T &x ) const
用法:取顺序表存储的线性表中的第k个元素,将该元素放到变量x中,返回值为布尔值
参数:第一个参数:表示线性表中的第k个位置,第二个参数模板类型参数可以是整型,字符型,双精度类型,字符串类型等。
示例:
#include “DListSeq.h”
void main()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。