• 数据结构(一)线性表(模板实现)


    线性表( Linear List )的定义

    线性表是零个或多个具有相同类型的数据元素的有限序列。 数据元素的个数定义为线性表的 长度 。长度等于零时称为空表,一个非空表通常记为 L = ( a 1 , a 2 ,……, a n ) 其中, a i ( 1 ≤ i ≤ n )称为数据元素, 下标 i 表示该元素在线性表中的位置或序号, 称元素 a i 位于表的第 i 个位置,或称 a i 是表中的第 i 个元素。

     1.顺序表

    特点:

    线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,

    作用:

    线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。

    顺序存储的实现:一维数组存储顺序表中的数据

     设顺序表的每个元素占用 c 个存储单元,则第 i 个元素的存储地址为:

    LOC ( a i ) = LOC ( a 1 ) + ( i - 1 ) × c

    实现:

    1. #include
    2. using namespace std;
    3. const int MaxSize = 100;
    4. template <typename T>
    5. class SeqList
    6. {
    7. private:
    8. T data[MaxSize]; //存放元素
    9. int length; //线性表长度
    10. public:
    11. SeqList();
    12. SeqList(T a[], int n);
    13. ~SeqList();
    14. int Length();
    15. T Get(int i);
    16. int Locate(T x);
    17. void insert(int i, T x);
    18. T Delete(int i);
    19. void Display();
    20. };
    21. template<typename T>
    22. SeqList::SeqList()
    23. {
    24. int n;
    25. cin >> n;
    26. for (int i = 0; i < n; i++)
    27. {
    28. cin >> data[i];
    29. }
    30. length = n;
    31. }
    32. template<typename T>
    33. SeqList::SeqList(T a[], int n)
    34. {
    35. if (n < MaxSize)
    36. {
    37. throw "参数非法";
    38. }
    39. else
    40. {
    41. for (int i = 0; i < n; i++)
    42. {
    43. data[i] = a[i];
    44. length = n;
    45. }
    46. }
    47. }
    48. template<typename T>
    49. SeqList::~SeqList()
    50. {
    51. }
    52. template<typename T>
    53. int SeqList::Length()
    54. {
    55. return length;
    56. }
    57. template<typename T>
    58. T SeqList::Get(int i)
    59. {
    60. if (i<1 && i>length)
    61. {
    62. throw "查找位置非法";
    63. }
    64. els
  • 相关阅读:
    算法 - 路径总和
    信钰证券:pb指标代表什么意思?
    多平台商品采集——API接口:支持淘宝、天猫、1688、拼多多等多个电商平台的爆款、销量、整店商品采集和淘客功能
    MFC中获取任务栏大小
    CommomJS使用介绍_web前端培训
    河北工业大学数据挖掘实验四 贝叶斯决策分类算法
    CRUD之文件的上传和下载
    嵌入式开发学习--进程、线程
    java基于ssm的 大学生健康管理系统
    乐观锁与悲观锁
  • 原文地址:https://blog.csdn.net/qq_64246637/article/details/127109017