1、谈谈你对数据结构的理解?
学习数据结构之前,每每听到数据结构一词,瞬间就有种很高端的感觉,~有木有~?
如果某人嘴边顺口就溜出一串关于数据结构的解说时,心中油然而生出一种仰佩之情。难道这就是传说的专业人士与菜鸟的区别?
学习数据结构时,我觉得务必遵循一条线原则。理解为什么产生数据结构?数据结构是什么?数据结构有哪几种类型?....
我就带着这几个问题总结归纳一下:
2、数据结构形成和发展的背景
计算机加工处理的对象由纯碎的数值发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来
一些新的问题。为了编写出一个“好”的程序,必须分析待处理对象的特性以及各处理对象之间的存在的关系。
小编有话说:计算机处理的是什么?没错,是数据。那什么是数据?数据是对客观事物的符号表示。说白了就是数据的结构发生了变化,不再仅是数值了,涵盖字符、表格、图像等。这些变化了的数据给程序设计带来了新的问题,
为了编写出“高大上”的程序,有必要研究这些数据的结构以及数据元素之间的关系。
3、数据结构的定义和类型
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
线性结构:结构中的数据元素之间存在一个对一个的关系。
树形结构:结构中的数据元素之间存在一个对多个的关系。
图状网状结构:结构中的数据元素之间存在多个对多个的关系。
4、用计算机解决问题的步骤:
首先要从具体问题抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编写出程序,进行测试、调整直至得到最终解答。
寻求数学模型的实质是分析问题,从中提取操作操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。
5、抽象数据类型
ADT是指一个数学模型以及定义在该模型上的一组操作。
ADT 抽象数据类型名 {
数据对象:
数据关系:
基本操作:
} ADT 抽象数据类型名
6、一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。
为了便于比较同一个问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量度。
7、线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
8、栈和队列是操作受限的线性表。
学习数据结构之前,每每听到数据结构一词,瞬间就有种很高端的感觉,~有木有~?
如果某人嘴边顺口就溜出一串关于数据结构的解说时,心中油然而生出一种仰佩之情。难道这就是传说的专业人士与菜鸟的区别?
学习数据结构时,我觉得务必遵循一条线原则。理解为什么产生数据结构?数据结构是什么?数据结构有哪几种类型?....
我就带着这几个问题总结归纳一下:
2、数据结构形成和发展的背景
计算机加工处理的对象由纯碎的数值发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来
一些新的问题。为了编写出一个“好”的程序,必须分析待处理对象的特性以及各处理对象之间的存在的关系。
小编有话说:计算机处理的是什么?没错,是数据。那什么是数据?数据是对客观事物的符号表示。说白了就是数据的结构发生了变化,不再仅是数值了,涵盖字符、表格、图像等。这些变化了的数据给程序设计带来了新的问题,
为了编写出“高大上”的程序,有必要研究这些数据的结构以及数据元素之间的关系。
3、数据结构的定义和类型
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
线性结构:结构中的数据元素之间存在一个对一个的关系。
树形结构:结构中的数据元素之间存在一个对多个的关系。
图状网状结构:结构中的数据元素之间存在多个对多个的关系。
4、用计算机解决问题的步骤:
首先要从具体问题抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编写出程序,进行测试、调整直至得到最终解答。
寻求数学模型的实质是分析问题,从中提取操作操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。
5、抽象数据类型
ADT是指一个数学模型以及定义在该模型上的一组操作。
ADT 抽象数据类型名 {
数据对象:
数据关系:
基本操作:
} ADT 抽象数据类型名
6、一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。
为了便于比较同一个问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量度。
7、线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
8、栈和队列是操作受限的线性表。