数据结构(C语言版)知识汇总——第一章 绪论

  • 数据(data):指所有能够输入到计算机中并被计算机程序处理的符号集合。
  • 数据元素(data element):数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
  • 数据对象(data object):性质相同的数据元素的集合,是数据的一个子集。
  • 数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合,一般有四种结构:集合、线性结构、树形结构、图状结构。
  • 数据元素在计算机中有两种存储结构:顺序存储结构、链式存储结构。
  • 数据类型(data type):一个值的集合和定义在这个值集上的一组操作的总称。
  • 数据类型可以分为两类:原子类型、结构类型。原子类型表示其值不可再分解,如整数。结构类型表示其值可以再分解,如复数可分为实部和虚部。
  • 抽象数据类型(abstract data type,简称 ADT):指一个数学模型以及定义在该模型上的一组操作,和数据类型定义相似。
  • 抽象数据类型按其值的不同特性可分为三种类型:

                原子类型(atomic data type):属原子类型的变量的值是不可分解的,如整数

                固定聚合类型(fixed-aggregate data type):属该类型的变量的值是由确定数目的成分按某种结构组成。例如,复数是                              由两个实数依确定的次序关系构成

                可变聚合类型(variable-aggregate data type):相比于固定聚合类型,其变量的值的成分数目不确定。

  • 一个抽象数据类型可由以下三元组表示:

(D,S,P)

                        其中D是数据对象,S是D上的关系集,P是对D的基本操作集

  • 定义抽象数据类型格式:

                ADT  抽象数据类型名{

                         数据对象:<数据对象的定义>

                         数据关系:<数据关系的定义>

                         基本操作:<基本操作的定义>

                 }ADT  抽象数据类型名

       其中数据对象和数据关系的定义用伪码描述,基本操作的定义格式如下:

                  基本操作名(参数表)

                          初始条件:<初始条件描述>

                          操作结果:<操作结果描述>

​ADT Complex{
    数据类型:D={r,i|r,i为实数}
    数据关系:S={<r,i>}
    基本操作:
    	InitComplex(&C,re,im)
            操作结果:构造一个复数C,实部为re, 虚部为im。
        DestroyComplex(&C)
            初始条件:复数C存在
            操作结果:销毁复数C
        Get(C,k,&e)
            初始条件:复数C存在,1<=k<=2
            操作结果:用e返回C的第K元的值
        Put(&C,k,e)
            初始条件:复数C存在
            操作结果:将C的第k元改成e
        IsAscending(C)
            初始条件:复数C存在
            操作结果:如果复数C的两个元素按升序排序,则返回1,否则返回0
        IsDesending(C)
            初始条件:复数C存在
            操作结果:如果复数C的两个元素按降序排序,则返回1,否则返回0
        Max(C,&e)
            初始条件:复数C存在
            操作结果:用e返回复数C中两个元素值较大的一个
        Min(C,&e)
            初始条件:复数C存在
            操作结果:用e返回复数中两个元素值较小的一个
}ADT Complex
  • 对于一个算法,一个重要的评判标准是时间效率,对于算法时间效率,我们常常通过算法时间复杂度进行估算 

算法时间复杂度:记T(n)=O(f(n))。T(n)是关于问题规模n的函数,表示最基本操作的执行次数,该等式表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作时间复杂度。这样用大写O()来体现算法时间复杂度的方法,我们称之为大O记法

  •  推导大O阶的方法:
  1. 用常数1取代运行时间中的所有加法常数
  2. 在修改后的运行次数函数中,只保留最高阶项
  3. 如果最高阶项存在且不是1,则去除与这个项相乘的常数。
  • 这样得到的结果就是大O阶
  • 常见的时间复杂度如下表:

  • 常见的时间复杂度所耗费的时间从小到大依次是:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于您提到的《数据结构》一书,根据引用\[1\]和引用\[2\]的内容,这是一本关于数据结构的教材,作者是严蔚敏。该书的第一章绪论,介绍了数据结构的基本概念和术语,以及算法和算法分析的内容。该书还包含习题集,其中第一章的习题包括算法设计题。此外,根据引用\[3\]的内容,书中还介绍了顺序栈的存储结构。至于是否有C语言的第一,我无法确定,因为引用的内容中没有提到具体的本信息。如果您需要获取该书的C语言第一,建议您查阅相关的图书出信息或者在网上搜索相关资源。 #### 引用[.reference_title] - *1* [【数据结构】01-绪论数据结构 C语言(严蔚敏、吴伟民)》](https://blog.csdn.net/TMT123421/article/details/84568290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [数据结构C语言严蔚敏(第二)超详细笔记附带课后习题](https://blog.csdn.net/chongyang_/article/details/109544719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值