数据结构是计算机学科的一门基础课程,对我们以后在编程方面能进行更加深入的学习和发展有着重大的影响。而我最近也在自学数据结构,所以在这里记录下自己在学习这门基础课程过程中自认为重要的一些知识点和个人总结,若是能在帮助自己记忆的同时还能帮助到其他正准备学或者正在学习这门课程的各位网友,那就再好不过了。同时也希望能看到这篇文章的各位网友对文中出现的错误不吝指正,我先在此表示感谢。
数据结构基础
(1)什么是数据结构?
数据结构是指相互之间存在一定联系的数据元素的集合。
说到数据元素,那就要弄清楚有关数据的几个概念。分别是:
a.数据:是客观事务的符号表示。在计算机学科中指的是输入到计算机中能被计算机程序处理的符号的总称。
b.数据元素:数据的基本单位。在程序中通常作为一个整体来进行考虑和处理。
c.数据对象:是性质相同的数据元素的集合。是数据的一个子集。
d.数据项:是数据元素的基本单位。描述数据元素某一方面的特性。是不可再分的最小单位。
按照我的理解,上面的几个概念可以类比成:数据表示“世间万物”;数据对象表示“人类”;数据元素表示“个人”;而数据项则表示“个人的某一个特性”。
元素之间的相互联系叫作逻辑结构。
(2)逻辑结构有哪几种基本类型?
存在四种基本类型:集合;线性;树型;图状或网状。
(3)数据结构的形式定义是什么?
Data_Structure=(D,S)
其中D是数据元素的有限集,S是D上关系的有限集。
2.数据结构在计算机中的表示和存储
(1)数据结构有哪几种存储表示?
有2种存储表示,一种是数据元素的存储,另一种是数据元素之间关系的存储。
(2)元素之间关系的存储有哪几种方式?
有两种存储方式:
a. 顺序表示——>顺序存储——用数据元素在存储器中的相对位置表示数据元素之间的逻辑关系。
b. 非顺序表示——>链式存储——在每一个数据元素中放置一个指向下一个数据元素的指针,用该指针来表示数据元素之间的逻辑关系。
(3)根据以上所述,我们可以得到每种存储方式的什么特点?
a. 顺序存储的特点:相邻数据元素在存储器中的存放地址是连续的。
b. 链式存储的特点:相邻数据元素在存储器中的存放地址不要求连续。
总结:我们可以认为顺序存储结构具有随机存取的特点,类似于c语言中的一维数组。而链式存储则不具备随机存取的特点,在c语言中用结构体表示链式存储。
(4)数据结构的三个组成部分是什么?
a. 逻辑结构;
b. 存储结构;
c. 数据操作;
3. 数据结构与数据类型的区别是什么?
数据类型是一个值的集合和定义在该值集的一组操作。
数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且还要描述数据对象各元素之间的相互关系。
原文地址:http://kylepeng.blog.51cto.com/9476012/1731674