美文网首页码农的世界程序员
嵌入式学习笔记:数据结构与算法知识点总结

嵌入式学习笔记:数据结构与算法知识点总结

作者: 84e94ada13e1 | 来源:发表于2018-12-07 17:20 被阅读18次

    一、数据结构:研究数据(数据元素)之间的关系。(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移动后,之前的最后一个数据,直接忽视不用了,但是 还在。

    相关文章

      网友评论

        本文标题:嵌入式学习笔记:数据结构与算法知识点总结

        本文链接:https://www.haomeiwen.com/subject/eaqxhqtx.html