数据结构基础知识

一 数据结构基本概念

 程序设计=数据结构+算法

1.数据结构是相互之间存在一种或多种特定关系的数据的集合。   逻辑

 2.数据结构是计算机存储组织数据的方式。         物理形式

 3.数据结构的选择直接影响及三级程序的运行效果(时间复杂度)和存储效率(空间复杂度)。

 4.数据结构包括三个基本层次:

  抽象层-逻辑结构

  结构层-物理结构

  实现层-运算结构

 二 逻辑结构  强调关系

 1.集:结构中的数据元素除了同处于一个集合外没有任何其它关系。   (一般不研究,难处理)

 2.表:结构中的数据元素具有一种一一对应的前后关系。

 3.树:结构中的数据元素具有一对多的父子关系。

 4.图:结构中的数据元素具有多对多的交叉映射关系。

 三 物理结构  强调存储方式

 1.顺序结构:结构中的数据元素存放在一段连续的地址空间中。

            a[i]<==>*(a+i),常数时间的随即访问。  时间开销与数据元素的数量没关系

            缺点:线性时间的插入和删除(插入删除操作时间开销线性增加)。

                      空间利用率低(空间上必须连续,不能有效利用碎片内存)。

 2.链式结构:结构中的数据元素存放在彼此独立的地址空间中。

             每个独立的地址空间称为节点。

             节点中除了保存数据以外,还需要保存相关节点的线索。

              优点:空间利用率高。常数时间的插入和删除(插入删除效率高)。

            缺点:线性时间的随即访问。空间复杂度高。

四 逻辑结构与物理结构的关系

 

数据结构

 

顺序

顺序表(数组)

顺序树

链表数组

 

链式

链式表(链表)

链式树

 

      每种逻辑结构采用何种物理结构实现,并没有一定之规,通常根据实现的难以程度,以及在时间和空间复杂度方面的要求,选择最合适的物理结构,亦不排除复合多种物理结构实现一种逻辑结构的可能。

 五运算结构

1.创建与销毁

  分配资源建立结构释放资源

2.插入与删除

  增加/减少数据元素

3.获取和修改

  遍历迭代随即访问

4.排序和查找

  算法应用

 六  数据结构的实现

1.堆栈:后进先出(试管)

  1)基于顺序表的实现:初始化空间  栈顶指针 判空判满

       记录栈顶位置:维护栈顶指针

  2)基于链式表的实现:栈顶指针,判空

         老鼠走迷宫  例子

 2.队列:先进先出(水管)

 1)基于顺序表的实现(点击指向具体代码):初始化空间前弹后压循环使用判空判满

 2)基于链式表的实现(点击指向具体代码):前后指针判空

 

练习:用堆栈实现队列  

            参考代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值