C数据结构线性顺序结构.docVIP

  • 1
  • 0
  • 约1.79万字
  • 约 16页
  • 2017-10-22 发布于北京
  • 举报
C数据结构线性顺序结构

C++线性顺序结构 1,这是一个用C++实现的采用动态数组为基础的线性顺序表,栈,和循环队列。 2,同时采用了模板,可以实现对不同的基本数据类型进行操作。 3,因为VC++6.0不支持模板的分离编译,所以类的接口和实现全放在头文件中。 4,此文档中的内容全部通过VC++6.0的编译,对它们也做了一些简单的测试,但类的方法中没有包含对”输入的数据的类型”是否合法进行检测,所以在输入数据时要注意。 5,因为本人只是学生,此文档中的内容只能用于交流和参考。其中很多算法的可靠性和时空复杂度并没有进行测试。 6,其中顺序表和栈是以动态数组为基础,并以10为单位(即每次可以动态的增加或减少10个元素的内存)。 7,队列采用的是循环队列,因为以数组为基础必须采用循环队列,不然每次入队或出队就要对整个队列进行移动数据,这样会造成效率低下。 8,因为是循环队列,所以就不方便使用动态数组进行增加或减少元素。 9,如果其中有算法效率低下,使用不合理请多包含和指正,同时也希望大家学有所成。 10,以下是源文件中的内容,全部是.H源文件。 //动态顺序表的Sequence.h源文件。 #ifndef Sequence_h #define Sequence_h #include iostream #include iomanip using namespace std; const int lon=10; //表的初始长度和每次自动增长和自动减少的长度 templateclass Tey class Sequence //动态顺序表类 { public: Sequence(); //创建动态顺序表 ~Sequence() { delete[]phod;} //释放动态内存 void Output(); //输出表中有效元素内容 int Number(); //返回当前有效元素个数 int Total_length(); //返回当前顺序表总长 bool Plus_Tail(Tey m);//向表尾部增加数据 bool Insert_Bit(int n,Tey m);//在指定n位置插入数据m bool Insert_data(Tey x,Tey m); //在指定数据为x的第一个位置插入数据m bool Insert_All(Tey x,Tey m); //在指定数据为x的所有位置插入数据m Tey Search_data(int n); //返回指定位置的数据 int Search_Number(Tey m);//查找指定数据m在表中的总个数 int Search_Bit(Tey m); //返回指定数据m在表中第一个元素的位置,失败返回-1 bool Delete_Bit(int n); //删除指定位置n的元素 bool Delete_All(Tey m); //删除指定数据m在表中的所有元素 bool Modify_Bit(int n,Tey m);//将指定位置为n的元素数据修改为m bool Modify_All(Tey x,Tey m);//将指定数据为x在表中的所有元素修改为m void Sort_l(); //对表元素进行升序 void Sort_Drop(); //对表元素进行降序 bool Replication(SequenceTey Table);//将表中数据复制给Table表 bool Merge_And(SequenceTey Table); //将Table表中的数据按并集合并到顺序表中 bool Merge_Pay(SequenceTey Table); //将Table表中的数据按交集合并到顺序表中 bool Merge_Dif(SequenceTey Table); //将Table表中的数据按差集合并到顺序表中 bool Increasing(); //自动增长顺序表函数 bool Reduction(); //自动减短顺序表函数 bool Filter(); //过滤表中重复数据 void Empty(); //清空表 private: Tey *phod; //表指针 int Total,length; //Total表示表的总长,length表示有效元素个数. }; templateclass Tey SequenceTey::Sequence()

文档评论(0)

1亿VIP精品文档

相关文档