数据存储结构
(如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力。本博客会逐步推出一系列的关于大型网站架构、分布式应用、设计模式、架构模式等方面的系列文章)
所谓数据存储结构,就是数据的元素与元素之间在计算机中的一种表示,它的目的是为了解决空间规模问题,或者是通过空间规模问题从而间接地解决时间规模问题。我们知道,随着输入的数据量越来越大,在有限的内存里,不能把这些数据完全的存下来,这就对数据存储结构和设计存储的算法提出了更高的要求。
存储结构,主要有链式结构、树形结构、图结构以及矩阵结构。
链式存储结构
所谓链式存储结构,一般就是用一个头指针指向链表的第一个节点,如果你要增加新的存储元素时,只需在已有节点的后面插入新结点即可。
链表通常有单链表、双链表、循环链表。
在这,我只介绍单链表,双链表和循环链表只是单链表的拓展罢了。下图就是一个简单的单链表图示。
下面我们来看单链表的操作:创建节点、增加节点、删除节点、查询、修改。
创建节点:声明一个节点并为其申请一段内存空间,此节点有数据域和指针域。
增加节点:插入节点,分为头插入、尾插入和非头尾插入。
①. 在表头插入节点,如图
②. 在表尾插入节点,如图
删除节点:分为删除头结点,删除尾节点,删除头尾节点。
①. 删除表头结点,如图
②. 删除表尾节点,如图
附注说明:上图中删完尾节点之后,新链表的尾节点下标应为n-1。不过由于作图时只做了尾节点,故用图中的n2节点代替。
③. 删除非头尾节点,如图
查询节点:
在链表中找到你想要找的那个节点。此操作是根据数据域的内容来完成的。查询只能从表头开始,当要找的节点的数据域内容与当前不相符时,只需让当前节点指向下一结点即可,如此这样,直到找到那个节点。
修改节点:
修改某个节点数据域的内容。首先查询到这个节点,然后对这个节点数据域的内容进行修改。
ok,链表的几种操作介绍完了,接下来我们来总结一下链表的几个特点。
链式存储结构的特点:
1、易插入、易删除。不用移动节点,只需改变节点中指针的指向。
2、查询速度慢。每进行一次查询,都要从表头开始,速度慢,效率低。