何为数据结构
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
数据结构是
IT
编程人员必学的一门课程。对它以及算法的掌握程度可以说是测量一个程序员能力的标准。因此一些大公司在招聘的时候始终有这项标准,尤其一些研发职位。那究竟什么是
数据结构呢?很多人对此不是很理解,或是理解有些偏差。有些人更是把它看的很神圣,甚至望而却步。其实它很简单,也很好理解。下面我说下自己对它的理解。
数据结构其实就是数据存储的一种形式,一种方法。最简单点的如
C
语言中的结构体。它就可以理解为简单的一种数据结构。它用于把一些简单的数据组合到一起进行存储。所以可以理解为集合数据结构。另外一个简单的数据结构
C
语言中的数组。我们也可以把它理解为一种数据结构。由于它在存储上有了顺序性。它不能别列为集合数据结构。我们可以把它理解为线性数据结构。由此我们可以看出数据结构只不过是数据的一种存储方式,存储形式而已。并没有什么高深的理论,重要的是它的思想。
其实原本没什么数据结构存在,它是人们为了方便而出现的。比如,我想存储
10
个人的数学成绩。那么我需要定义
10
个浮点型变量。但这样隐式的就给我提出了一下要求或带来了一些缺点:
①
我必须记住这
10
变量或知道他们在哪里。否则我无法访问。
②
我要想输出学生成绩时,必须一个一个的输出,
for
循环就起不上作用了。
③
形成的代码比较散乱,不易读。
数组的出现为此带来了极大的便利,我只需记住数组名即可访问每个人的成绩。并且代码比较简洁易懂。但出现了另外一个问题,我怎么知道哪个成绩是哪个人的呢。对呀,于是结构体出现了。它把有一定联系的数据组合到一起。这样通过结构体我们就能很清楚的知道谁的成绩是多少。
OK
,目前有了数组,有了结构体。存储数据我们不发愁了,它们基本都满足了我们的存储要求。现在人们又有需求了。对于数组,我要想插入一个元素,这样从我插入位置以后的数据都要往后移动一个元素单位。很是浪费时间,于是出现了链表。它在插入数据时不需移动任何元素,只需改变前后指向即可。很是方便。此后人们根据现实生活中的现象想出了栈,队列,树,图等数据结构。
由此我们便可以看出数据结构只是存储数据的形式而已,它并不可怕,它也无语言之分,只要理解了它的思想,使用任何语言都可以设计出你想要的数据结构。至此,我想给数据结构下了一个我的定义:数据结构是人们为了存储方便或是搜索方便等原因设计出来的多种存储数据的方式和方法。
因此,数据结构并不可怕,形式也并不固定和唯一。只要我们掌握了基本数据结构的思想精髓,实际运用中我们也可以根据自己的需要在现有的基础上对其扩展或创新。
转载于:https://blog.51cto.com/ihome/415990