gzyueqian
13352868059

武汉嵌入式学习路线分享:数据结构与算法知识点总结

更新时间: 2018-10-19 10:39:55来源: 武汉嵌入式培训浏览量:3408

    下面是我在嵌入式课堂上总结的数据结构与运算的知识点,不懂的可以拿来参考看看
    一、数据结构:研究数据(数据元素)之间的关系。(C研究数值型数据之间的简单运算, 数据结构 还研究非数值型之间的运算)
    1.逻辑结构(关系):集合、线性关系、树形关系、图状关系(线性和非线性关系)
    2.物理结构(物理关系):逻辑结构在计算机内存中具体实现的方法,有顺序、链式、 索引、散列等存储方法
    3.数据运算:对数据进行的操作,增、删、查、改、排序。
    数据即信息的载体。
    数据元素是数据的基本单位(又称记录,Record),由若干个基本项(or字段、域属性)组成
    数据类型是对数据元素取值范围与运算的限定
    相关术语概念:
    数据Date 数据类型Date Type 数据元素Date Element
    数据结构Date Structure 物理结构(存储结构)Physical Structure
    顺序存储Sequential Storage 链式存储Linked Storage
    索引存储Indexed Storage 散列存储Hash Storage
    形式化语言描述(数学表达式):
    DS=(D,R)D数据元素的集合,R D上关系的集合
    根据数据元素间的关系的基本特性有四种基本数据结构:
    集合——数据元素间除“同属于一个集合”外,无其他关系
    线性结构——一个对一个,如线性表、栈、队列
    树形结构——一个对多个,如树
    图状结构——多个对多个,如图(图是树的拓展,可有树构成)
    算法Algorithm一个又穷规则(or语句、指令)的有序集合(对程序的优化,易阅读、调试、维护)
    特性:有穷性、确定性、可行性、输入(0-n)、输出(1-n)
    程序 = 算法 + 数据结构
    算法与程序的区别:
    1.算法与计算机无关,程序依赖于具体的计算机语言
    2.算法重点是在解决问题的思路上
    算法分析(好坏):时间复杂度T(n) 空间复杂度D(n)(不考虑,牺牲来成全时间)Time/Space Complexity
    语句的频度:可执行语句程序中重复执行的次数。某语句执行一次耗时t,执行次数f,则该语句总耗时t*f。
    量级T(n)=O(n3) 取次数的项并去掉系数,作为时间复杂度 。
    ↑上午 概念
    ↓下午 线性表 的逻辑和存储结构、相关算法的实现以及线性表的应用举例。
    线性表Linear List
    首先创建表,再插入表,再增删改查,销毁。
    创建:申请一个结构体
    结构体声明写在头文件里面
    用gedit编辑.h和.c文件
    方便的查找,在挨着表的末尾空间在申请一个空间用来存放表的有效个数or一个元素下标。
    创建表 :...待写
    插入数据:1.首先判断表是否为满。2.判断插入的位置是否有效。3.从后往上移动数据元素。 4.插入元素。5.尾指针last+1

    删除数据:1.首先判断表是否为空。2.判断删除的位置是否有效。3.删除后从前往后移动元 素。4.尾指针last-1。5移动后,之前的一个数据,直接忽视不用了,但是 还在。

    想要了解更多嵌入式的知识那就来“撩”我们吧!

免费预约试听课