数据结构 顺序表 链式表

一、什么是数据结构

1、数据结构的起源

1968年,美国高德纳教授,《计算机程序设计艺术》第一卷《基本算术》出版,开创了数据结构与算法的先河。
数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。
数据结构+算法=程序 沃斯,凭借这个观点,过得图灵奖,因为这句话展示了程序的本质

2、数据结构的基本概念

    数据:所有能够输入到计算机中的、能被程序处理的描述客观事物的符号
    数据元素:数据的基本单位,也叫做节点、记录
    数据项:  有独立意义的数据的最小单位,也叫域
    数据结构:数据元素与数据之间的关系集合
    算法:数据结构所具备的功能、解决特定的问题的方法

3、数据结构的三个方面

    数据的逻辑结构
    数据的物理结构(存储结构)
    数据结构的运算

二、逻辑结构和存储结构
数据的逻辑结构:

    集合:  数据元素同属于一个集体,但是元素之间没有任何关系
    线性结构:数据元素之间存在一对一的关系(表)
    树型结构:数据元素之间存在一对多的关系(倒悬树)
    图型结构:数据元素之间存在多对多的关系(地图)
    
数据的存储结构:
    顺序结构:数据元素之间存在连续的内存中,用数据元素的相对位置来表示关系
        优点:支持随机访问,访问的效率极高,适合查找数据
        缺点:空间利用率低,对内存的要求高,插入、删除不方便
    链式结构:数据元素存储在彼此独立的内存空间中,每个独立的元素也叫做节点,每个数据元素中增加一个数据项用于存储其它元素的地址,用来表示数据元素之间的关系
        优点:插入、删除方便,空间利用率高,适合增删数据
        缺点:不支持随机访问,只能从前到后逐个访问
        

逻辑结构与物理结构的对应关系:
    表  顺序 链式
    树  链式 顺序
    图  顺序+链式
    每种逻辑结构采用什么物理结构没有明确规定,通常根据实现的难易程度以及空间、时间方面的要求,来选择最合适的物理存储结构

三、数据结构的运算

1、建立数据结构     create
2、销毁数据结构     destory
3、清空数据结构     clean
4、数据结构的排序   sort
5、插入元素         insert
6、删除元素         delete
7、访问元素         access
8、修改元素         modify
9、查询元素         query
10、遍历数据结构    show ergodic print

四、顺序表和链式表的实现

顺序表:
    数据项:
        储存元素的内存首地址
        表的容量
        元素的数量
    运算:
        创建、销毁、清空、插入、删除、访问、修改、查询、排序、遍历
    注意:
        1、不要越界
        2、不要破坏元素的连续性
    优点:支持随机访问、修改、查询、排序效率都比较高,大块的连续的内存不容易产生内存碎片
    缺点:对内存的要求高,插入、删除元素不方便,效率低。

链式表:
    节点的数据项:
        数据域:可以是各种类型的若干个数据项
        指针域:指向下一个节点
    如果由若干个节点通过指针域连接在一起形成了链式表

    不带头节点:第一个元素的数据域直接存储有效数据。
        添加、删除时可能会修改头节点指针,因此参数需要使用二级指针
        删除时需要获取到上一个节点的指针,而头节点没有上一个节点,因此需要额外特殊处理

    带头节点:第一个元素不使用,仅仅只是为了用它来指向下一个节点而已。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值