学习数据结构先C语言的基础,就是C语言的结构体和内存(重点是关于动态内存malloc)
一、关于数据结构的引入和认识
1.计算机处理的对象(数据)已经不再是单纯的数值
2.什么是数据结构
(1.)数据结构式研究计算机数据之间的关系
(2.)数据之间的关系又包含:逻辑结构,存储结构及其操作(当我们考虑存储结构的时候就是去考虑用什么编程语言来编写数据结构,使用Java写还是C语言写....)
数据结构比编程语言出现的还要早,数据结构就是让编程语言变得 更加的高效,所以说编程语言只是基础
3.数据结构中包含的基本概念
(1.)数据(data)数据即信息的载体,是能够输入到计算机中并且能被计算机识别,存储和处理的号的总称
(2.)数据元素(data element)
数据元素是数据的基本单位,又称为记录,一般地,数据元素的类别有若干个基本项(或称做字段,域,属性)组成。
4.数据的逻辑结构
(1.)表示数据运算之间抽象的关系
按照每个元素可能具有直接前驱和直接后继数逻辑结构分为“线性结构”和“非线性结构”两大类
(2.)相关的概念
集合——数据元素之间除“同属于一个集合”外,无其他的关系
线性结构——一个对一个,如线性表,栈,队列(只有一个前驱和一个后继)
树形结构——一个对多个,如树(就是前驱只有一个,但是其后继可以有多个)
网状结构——多个对多个,(有多个前驱和多个后继)
5.数据的存储结构
存储结构:逻辑结构在计算机中的具体实现方法
存储结构是通过计算机语言所编制的程序来实现的,因而是依赖于具体的计算机语言的
6.关于存储结构的分类
(1.)顺序结构
将数据结构中的各个元素按照其逻辑顺序存放于存储器一片连续的存储空间中
如C语言的一组数组,如表(L=A1,A2.....)的存储顺序
基本上每一种数据结构都可以用顺序存储
(2.)链式存储(重点)
将数据结构中的各元素分布代存储器的不同点当中,用地址(或者链式指针)方式建立他们之间的联系(就是没有一整块的存储空间去存储数据,但是零散的存储空间足以来存贮数据,那么这种清情况我们就可以选择链式存储)
数据结构中元素之间的关系在计算机的内部很大程度上是通过地址或者指针来建立的
(3.)索引存储
在存储数据的同时,建立一个附加的索引表,即索引存储结构=数据文件+索引表
(4.)散列存储
根据数据元素的特殊字段(称为关键字key),计算数据元素的存放地址,然后数据元素按地址存放 (就是根据行列的关系来查找数据,对于查找频率比较高的时候就可以用散列存储)
总结:
数据结构的三个方面:
一、数据的逻辑结构
(1.)线性结构:线性表,栈,队
(2.)非线性结构:树形结构,图形结构
二、数据的存储结构
(1.)顺序存储
(2.)链式存储(重点)
(3.)索引存储
(4.)散列存储
三、数据的运算
检索,排序,插入,删除,修改等