代码优雅程序员

数据结构一顺序表

2017-03-23  本文已影响67人  QiuZhiFeng

请尊重作者的劳动成果,如需转载请注明出处,谢谢!

如果觉得不错,可以关注我或者点赞,这就是你们对我最大的鼓励!



数据结构是算法的副产品,也就是说我们使用算法的时候,会创造出一些数据结构来实现我们的想法。那么想要更好的理解某些算法,就需要了解数据结构啦。

首先,我们来认识一个概念就是我们常用的数组,其实就是指针,如果不知道指针是什么,可以点击 指针

实验得真知

实际上,创建数组就是申请一块内存单元数组与指针是等价的

数组的内存示意图如下所示

指针就是存储内存地址的变量,就像我们找房子一样,通过门牌号找房子

门牌号就是内存地址,房子就是我们存放的值

* 这个符号代表访问该地址对应的变量,&代表获得该变量的地址

现在,我们开始讲第一种数据结构,也是最基础的一种数据结构------线性表。

那么什么是线性表呢,直观的来看,就是下图

线性表就是一个又一个像上图绿色的个体串起来一种结构。绿色的方格我们称作线性表的数据元素。   数据元素即可以放基本数据类型,又可以放自定义的结构体。

线性表很灵活,它可以根据需要伸长或者缩短,即既可以插入,又可以删除元素。

那么,如何实现呢?要求有

一、能够存放各种类型数据

二、能够通过自己访问下一个元素

三、长度能够伸长和缩短

数组能够满足前两条,然而为了能够满足第三条,我们就需要使数组大小能够变化,即创建动态大小的数组。也称为顺序表。

使用C语言实现基本增删改查如下图

容易发现,使用顺序表改和查十分方便,但是增和删却很麻烦,每次增或删都要将数组元素进行挪动。这是由于数据的结构所决定的。不同的数据结构对算法有着至关重要的影响。

当我们经常使用改和查时,我们使用这种结构比较方便。

但当使用增和删比较频繁时,我们可以使用另外一种结构,叫链表。链表实现增和删比顺序表方便很多。

下节我们将介绍链表

上一篇 下一篇

猜你喜欢

热点阅读