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


    线性表( 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
  • 相关阅读:
    javaEE----servlet初识
    Java SE 9 新增特性
    Android Context
    【leetcode报错】 leetcode格式问题解决:error: stray ‘\302’ in program [solution.c]
    适用于 Linux 和 Unix 的特权访问管理
    SkyEye:助力飞行器状态控制系统仿真
    windows系统删除网络适配器
    NR 2-STEP RA Absolute Timing Advance Command MAC CE的应用场景
    android studio专治项目运行不了
    云计算的一些常见安全风险
  • 原文地址:https://blog.csdn.net/qq_64246637/article/details/127109017