数据结构的概念

数据结构课程主要讲解如何使用存储区解决
    复杂问题
算法课程讲解解决常见固定问题的思路


数据结构关注程序中不同数字之间的关系
同样一组数据之间的关系可以从两个不同的角度
    去描述
一个角度描述数据之间在人们的头脑中形成的关系,
    这种关系叫逻辑结构。这种关系和计算机完全
无关。
另一个角度描述存放数据的存储区之间的关系,这个
    关系叫物理结构。这种关系和计算机紧密相关。


数据之间的逻辑结构和物理结构很可能完全不同


逻辑结构有如下几种:
1.集合结构:所有数字可以看成一个整体
2.线性结构:所有数字可以按照某个顺序排列成
            一条直线
3.树状结构:以一个数字作为起点向同一个方向
            逐级扩展可以得到所有数字的结构。
一个数字可以扩展出多个其他数字
4.网状结构:任何两个数字之间都可能有直接联系,
            所有联系没有统一的方向


物理结构有如下两种
1.顺序结构:多个存储区在内存中相邻排列


     通常使用数组和动态分配存储区实现
顺序结构


     顺序结构中可以根据编号直接找到对应
的存储区而不考虑其他存储区,这种能力
叫随机访问能力


     顺序结构一旦存在则很难调整大小,所以
为了保证够用通常会分配过多的存储区造成
内存浪费


     插入新数字或者删除旧有数字很困难


2.链式结构:多个存储区之间相互独立,任意
            两个存储区之间可以使用指针
连接


链式结构中每个存储区叫做一个节点
如果每个存储区只能记录另外一个存储区的地址
    则所有存储区可以排列成一条有前后顺序
的线,这种结构叫单向线性链式存储结构
两个相邻节点之间使用指针连接,这个指针是属于
    前一个节点的
单向线性链式存储结构中最后一个节点的指针
    必须是空指针
为了使用单向线性链式存储结构需要使用一个
    指针记录第一个节点的地址,一切操作都
从这个指针开始
可以使用一个指针变量作为循环变量,让它依次
    和每个结构图捆绑.使用这种方法可以依次
处理每个节点


可以在链的最前边放一个空节点,这个节点不记录
    任何有效数据.它只是用来占住这个位子,
这个节点叫头节点.
可以在链的末尾放一个空节点,这个节点也不记录
    任何有效数据.它也只是用来占住这个位子,
这个节点叫尾节点.


链式存储结构中每个节点应该采用动态分配方式
    获得(头节点和尾节点不需要动态分配,可以
使用静态全局变量)
这就导致当不再使用链式存储结构的时候必须把
    每个动态分配的节点释放


预习
    1.逻辑结构和物理结构的关系
2.栈
3.队列















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值