C语言数据结构与算法01

一、什么是数据结构
1、数据结构的起源
1968年,美国的高纳德教授开设了一门基本算法的课程,开创了数据结构的先河。
数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。
数据结构+算法=程序 沃思凭借这名个论点,获得图灵奖,这句话展示出了程序的本质。
2、数据结构的基本概念
数据:所有能够输入到计算机中去描述事物的符号。
数据项:有独立含义的数据最小单位,也叫域。
数据元素:数据的基本单位也叫节点、记录。
数据结构:数据元素和数据关系的集合。
算法:数据结构所具备的功能,解决特定的问题的方法。
3、数据结构的三个方面
数据的逻辑结构
数据的存储结构
数据结构的运算

二、逻辑结构和存储结构
数据的逻辑结构:
集合:数据元素同属于一个集体,但元素之间没有任何关系。
线性结构:数据元素之间存在一对一关系(表)。
树型结构:数据元素之间存在一对多关系(倒悬树)。
图型结构:数据元素之间存在多对多关系(地图)
数据的物理结构:
顺序结构:数据元素存储在连续的内存中,用数据元素的相对位置来表示关系。
优点:随机访问,访问效率极高。
缺点:空间利用率低,对内存要求比较高,插入、删除不方便。
链式结构:数据元素存储在彼此独立的内存空间中,每个独立的元素也叫节点,每个数据元素中增加一块指针域用于存储其它元素的地址,用来表示元素之间的关系。
优点:插入、删除方便,空间利用率高。
缺点:不能随机访问,只能由前到后逐个访问。
逻辑结构和物理结构的对应关系:
表 顺序 链式
树 链式 顺序
图 顺序+链式
每种逻辑结构采用什么物理结构存储并没有明确规定,通常根据实际的难易程度以及空间、时间方面的要求,来选择最合适的物理存储结构。

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

四、顺序表和链式表的实现
顺序表:
数据项:
存储元素的内存首地址
表的容量
元素的数量

    运算:
        创建、销毁、清空、 插入、删除、访问、修改、查询、排序、遍历
        注意:
            1、不要越界
            2、要保持元素的连续性

    优点:支持随机访问,修改、查询、排序效率比较高,大块连续的内存不易产生内存碎片。
    缺点:对内存的要求比较高(内存连续),插入、删除元素时不方便,效率低。

链式表:
    元素的数据项:
        数据域:可以是各种类型的若干个数据项
        指针域:指向下一元素
    由若干个元素通过指针域连接在一起形成链式表。
    
    不带头节点:第一个元素的数据域存储的就是有效的数据。
        添加删除时可以会修改头节点指针,参数需要使用二维指针。
        同时需要获取到上一个节点的指针,而头节点没有上一个节点,因此需要额外处理。
        
    带头节点:第一个元素不使用,仅仅是为了用它来指向下一元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值