第3章 线性表

在数据结构中,线性表应该是最简答的一种结构了吧。因为自己实现过List接口(MyCollectionFrameWork),因此对线性表的理解比较透彻。

装完逼后我们继续按着书中的思路走:

首先作者也是装了一波逼,然后引出了线性表的定义:

  • 线性表:0个或多个数据元素的有限序列

然后提出了线性表抽象数据类型的定义:

  • 下面列出了线性表最基本的操作:

    • 初始化操作

    • 判断线性表是否为空

    • 清空线性表

    • 获取线性表中任意一个位置的元素

    • 判断线性表是否包含指定元素

    • 在线性表的任意位置插入某一元素

    • 删除线性表中任一位置的某个元素

    • 获取线性表的元素个数

之后又提出了线性表两种物理结构之一的顺序存储结构:

  • 定义:用一段地址连续的存储单元依次存储线性表中的元素

  • 实现:使用一维数组实现,可查看jdk中的ArrayList实现,比较简单

  • 插入和删除:书中是用了一个美女插队的故事说明,我这边就只有图了,有兴趣可以自己去看故事去。

960786-20160911174757647-652489780.png

960786-20160911174849635-1188356617.png

  • 总之,线性表的顺序存储无论是线性结构还是算法实现都比较简单,相信大家看看List源码的实现都能看懂,然后也可以自己写个顺序存储的线性表。

然而,顺序存储也存在种种缺点,如插入和删除需要移动大量元素,难以确定容量大小等,因此有了链式存储结构,书中分为单链表和双向链表分别进行阐述,这里直接以链表统称,以双链表为例,因为双链表和单链表本质一样:

  • 链表的实现关键是产生节点对象,每个节点用来存储一个元素,并使用头结点指向前一个节点,使用尾结点指向后一个节点

  • 总的来说,顺序存储是不断向数组里面添加或删除元素,而链式存储是不断产生节点对象或删除节点对象,下面说明了顺序存储和链式存储的对比:

960786-20160912110159930-1138149086.png

然后又描述了循环链表:

  • 将终端尾结点的指针引用指向头结点即可实现循环链表

最后,作者给了这样一张图,感觉挺有用的:

960786-20160912111424852-449829211.png

转载于:https://www.cnblogs.com/realsoul/p/5862172.html

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值