什么是数据结构?

一、什么是数据结构

    1、数据结构的起源

        1968年,美国高德纳教授,《计算机程序设计艺术》第一卷《基本算法》,开创了数据结构和算法的先河

        数据结构是研究数据之间关系和操作的学科,而非计算方法

        数据结构+算法=程序 美国沃斯提出 这句话解释了程序的本质

    2、数据结构相关技术概念

        数据:所有能够输入到计算机中,能够被程序处理的描述客观事物的符号

        数据项:有独立含义的数据的最小单位,也称为域

        数据元素:组成数据的有一定含义的基本单位,也叫节点/结点/记录

        数据结构:相互之间存在一种或多种特定关系的数据元素的集合

        算法:数据结构中所具备的功能、解决某种特定问题的方法

    3、数据结构的三个方面

        数据的逻辑关系

        数据的存储关系

        数据结构的运算

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

    逻辑关系:

        集合:数据元素同属于同一个集体,但元素之间没有任何关系

        线性结构:数据元素之间存在一对一的关系

        树型结构:数据元素之间存在一对多的关系

        图型结构:数据元素之间存在多对多的关系

    存储(物理)关系:

        顺序结构:数据元素存储在连续的内存中,用数据元素的相对位置来表示关系

            优点:支持随机访问、访问查找效率极高、适合用于查找数据频繁的结构

            缺点:插入、删除时效率低不方便、内存空间利用率低、要求高

        链式结构:数据元素存储在彼此相互独立的内存中,每个独立的元素也叫做结点,每个结点中增加一项数据项用于存储其他相关结点的地址,以此表示结点之间的关系

            优点:插入、删除更方便、空间利用率极高、对内存要求不高

            缺点:不支持随机访问、只能从头到尾逐个访问

        注意:逻辑结构、存储结构采用哪种根据实现难度、空间、时间要求、操作习惯等方面综合考虑选择合适的结构

    逻辑结构与存储结构的关系:

        线性表  顺序  链式

        树     链式  顺序

        图      顺序+链式

三、数据结构运算

    1、创建数据结构     create/creat

    2、销毁数据结构     destory

    3、清空数据结构     clean

    4、数据结构排序     sort

    5、插入元素         insert

    6、删除元素         delete

    7、访问元素         access

    8、查询元素         query

    9、修改元素         modify

    10、遍历数据结构    ergodic/show/print

四、顺序表和链式表实现

    顺序表

        数据项:

            存储元素的连续内存的首地址

            表的容量

            当前元素的数量

        运算:

            创建、销毁、清空、插入、删除、访问、查询、修改、排序、遍历

        注意:

            1、保持数据元素的连续性

            2、不要越界

    链式表:list

        元素(结点)的数据项:

            数据域:可以是任何类型的若干个数据项

            指针域:指向下一个结点

        由若干个结点通过指针域连接到一起就形成了链表

        不带头结点的单链表:

            第一个结点的数据域存储有效数据

            缺点:添加、删除结点时,可能修改指向第一个结点的指针,参数需要使用二级指针,才能更改指针的指向,比较麻烦

        带头结点的单链表:

            第一个结点的数据域不存储有效元素,仅仅只是使用它的指针域永远指向链表的第一个数据有效的结点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值