上一篇简单介绍了算法,今天开始讲解数据结构,最后在综合讲常用的算法
有些同学刚接触这些可能不太理解,其实我们可以简单理 程序=算法+数据结构
目前先要理解基本数据结构的概念和模型,至于具体的代码,可能会在后续补充或更新引用其他博主的文章。
一、常见的数据结构
1、顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
看概念可能不太理解,其实就是一组连续存储的线性表
顺序表分为静态表和动态表,静态表就是在开始声明时候就已经定好了存储空间的大小,不能进行增加元素的操作。动态表就是可以后期再进行存储空间的修改,进行元素的增加或者修改。
动态表的基本形式:内表和外表(一体式和分离式) 下面这位博主写的非常详细,大家可以参考
动态顺序表扩充方式(策略):
(1)每次以固定数增长,例如每次增加10个元素位置,叫做线性增长
特点:节省空间,但是每次扩充时操作频繁,操作次数多。
每次以倍数增长扩充,例如目前有5个节点空间以1倍扩充的话,扩充一次后节点空间为10,再次扩充后为20。当然也可以从开始就进行2倍、3倍……等倍数增长。
特点:以空间换时间,减少了操作次数,但是可能会浪费空间资源。
关于顺序表的相关算法,我们可以参考下面这两位博主的文章,虽然各种语言的语法可能不尽相同,但是大体思路是一致的,帮助大家理解。
[数据结构基础]顺序表详解_怎样判断是不是顺序表-CSDN博客
2、链式表(p14节开始)
任务来了,来不及更新完这篇文章了,后续有时间会来更新
关于数据结构下面这位博主总结的比较全也易于理解,大家可以参考