码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据结构(一)线性表(模板实现)


    线性表( 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
  • 相关阅读:
    Intel Trust Domain Extensions(TDX)介绍
    k8s集群reset恢复重置
    Centos7.6 源码编译部署percona mysql 5.7.39-42
    JS操作字符串常见方法
    偶现来电时手机操作出现重启
    《TCP/IP网络编程》阅读笔记--epoll的使用
    【建议背诵】软考高项考试案例简答题汇总~(4)
    java毕业设计的在线古玩市场系统的设计与实现(附源码、数据库)
    论文阅读:GPT-too- A language-model-first approach for AMR-to-text generation Manuel
    可以通过电脑远程控制安卓设备的软件
  • 原文地址:https://blog.csdn.net/qq_64246637/article/details/127109017
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号