博客
关于我
C语言数据结构-第一讲-数据结构基础概念-电大
阅读量:764 次
发布时间:2019-03-23

本文共 1452 字,大约阅读时间需要 4 分钟。

第一讲 数据结构基础概念内容简介

数据是表征客观事物的可记录可识别的符号集合,是信息处理的核心基础。数据结构研究的是数据元素之间的相互关系,强调带有结构的数据元素集合及其组织形式。

数据结构的定义

数据结构是指相互之间存在一种或多种特定关系的数据元素集合。其核心在于数据元素之间的关系,即数据的组织方式。由于数据的组织方法直接影响处理效率,选择合适的数据结构对提高程序性能至关重要。

数据结构的主要组成部分

数据结构由以下三个主要组成部分定义:

  • 逻辑结构:描述数据元素之间的关系,包括集合、线性结构、树形结构和图形结构。
  • 存储结构:在计算机中对逻辑结构的实现,分为顺序存储(如数组)和非顺序存储(如链表)。
  • 运算集合:定义在数据集及数据元素关系集上的操作集合。

例如,学籍表属于线性结构,采用顺序存储实现;而网络节点图属于树形结构或图形结构。

数据结构的应用

采用合适的数据结构可以显著提升处理效率。例如,电话簿可以采用数组存储(顺序结构),支持快速按姓氏查询;而社交网络中的用户关系则更适合树形结构或图形结构。


第二讲 数据结构的内容简介

数据结构研究范围包括逻辑结构、存储结构以及与之关联的运算集合。

数据结构的逻辑结构

数据元素之间的逻辑关系可分为四种基本类型:

  • 集合结构(Belonging关系):简单的存在与否关系。
  • 线性结构(One-to-One关系):如学籍表中的学生-课程关系。
  • 树形结构(One-to-Many关系):如组织架构图中的上级-下属关系。
  • 图形结构(Many-to-Many关系):如网络节点之间的连接关系。
  • 数据结构的存储结构

    逻辑结构在计算机中的实现分为两类:

  • 顺序存储结构:数据元素按连续存储单元配置,例如数组。
  • 非顺序存储结构:数据元素通过指针或索引连接,存储单元非连续,例如链表。
  • 两者的主要区别在于存储方式,但都需保持逻辑关系。

    数据结构中的运算集合

    运算集合是数据操作的总和,定义在数据元素和数据元素关系集上。例如,线性表的增删改查操作。


    第三讲 数据结构与C语言表示内容简介

    数据结构与程序设计密不可分,良好的数据结构能显著提升程序效率。

    结构化程序设计与函数模块化

    结构化程序设计采用模块化思想,通过函数划分将程序分解为独立模块。

    C语言实现抽象数据模型

    在C语言中,通过typedef定义新数据类型,结合函数实现数据操作。例如,定义并实现一个学生管理系统。


    第四讲 算法性能评价

    算法性能评价聚焦执行效率和存储需求。性能评价指标包括时间复杂度和空间复杂度。

    时间复杂度计算

    时间复杂度是算法实际执行时间的度量。通过计算语句频度得出渐进时间复杂度。例如,矩阵乘法的时间复杂度为O(n^3)。

    空间复杂度分析

    空间复杂度衡量算法所消耗的存储空间。例如,原地算法(如双指针技术)空间复杂度为O(1),而使用额外数组的算法空间复杂度为O(n)。


    第五讲 算法与算法描述

    算法的定义与特性

    算法是规则明确的有限步骤集合。其特性包括:

    • 确定性:相同输入只给出相同输出。
    • 有限性:步骤固定且有限。
    • 可行性:每条操作具有明确意义。
    • 健壮性:对非法输入也能稳定处理。

    算法设计要求

    算法设计应注重正确性、可读性、效率和存储需求。例如,正确性需经过验证,效率需选择优化数据结构。


    总结

    本课程系统介绍了数据结构的核心概念、C语言实现方法以及算法性能评价等内容。在实践中,选择合适的数据结构和算法设计能够显著提升程序性能,同时良好的编程习惯和对数据结构的理解是算法设计的基础。

    转载地址:http://oqzkk.baihongyu.com/

    你可能感兴趣的文章
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
    查看>>
    org.tinygroup.serviceprocessor-服务处理器
    查看>>
    org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
    查看>>
    org/hibernate/validator/internal/engine
    查看>>
    Orleans框架------基于Actor模型生成分布式Id
    查看>>
    SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
    查看>>
    ORM sqlachemy学习
    查看>>
    Ormlite数据库
    查看>>
    orm总结
    查看>>
    os.environ 没有设置环境变量
    查看>>
    os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
    查看>>
    os.removexattr 的 Python 文档——‘*‘(星号)参数是什么意思?
    查看>>
    os.system 在 Python 中不起作用
    查看>>
    OS2ATC2017:阿里研究员林昊畅谈操作系统创新与挑战
    查看>>
    OSCACHE介绍
    查看>>
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    查看>>
    OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
    查看>>
    SQL--mysql索引
    查看>>