嵌入式学习day17(数据结构)

news2024/11/26 11:51:13

大纲

数据结构、算法
数据结构:
           1.  线性表:顺序表、链表(单向链表,单向循环链表,双向链表,双向循环链表)、栈(顺序栈,链式栈)、队列(循环队列,链式队列)
           2.  树:二叉树、遍历、创建
算法:
           查询方法、排序方式

为什么要学数据结构?

     1.C语言是学习如何写程序,数据结构是学习如何简洁高效的写程序
      2.如果遇到一个实际问题,需要写代码实现相应功能,需要解决两个问题:
          (1).如何表达数据间的逻辑关系以及怎么存储到计算机当中?
                         数据结构:数据的逻辑结构以及存储操作
                         数据:不再是单纯的数字,而是类似于一个集合的概念
                         结构:数据之间的关系
         (2).采用什么方法去解决?
                               采用算法去解决

数据结构+算法=程序

一丶数据结构

1.概念

          数据的逻辑结构,存储结构及操作(数据的运算)

2.数据

         数据:不再是单一的数值,而是类似于集合的概念

         数据元素:是数据的基本单位,由若干个数据项组成
         数据项:是数据的最小单位,描述数据元素信息
         数据元素又叫节点

3.结构

3.1逻辑结构

数据元素并不是独立存在的,他们之间存在着某种关系(联系或结构)。

元素和元素之间的关系:
线性关系:
     线性关系 ---》 线性结构 ---》一对一 ----》线性表:顺序表、链表、栈、队列
层次关系:

     层次关系 ---》 树形结构 ---》一对多 --- 》 树:二叉树
网状结构:
     
网状关系 ---》 图状结构 ---》 多对多 ---》图

3.2存储结构

数据的逻辑结构在计算机中的具体体现(数据的运算)

顺序存储:
特点:内尺连续,随机存取,每个元素占用较少
实现:数组

链式存储:
特点:内存不连续,通过指针实现
链表实现:通过定义结构体,里面是数据域和指针域

#include<stdio.h>
struct node
{
    int data;//数据域,存放节点要保存的地址
    struct node *next;//指针域,指向下一个节点的地址(类型为结构体指针)
};
int main(int argc, char const *argv[])
{   //定义三个节点
    struct node A={1,NULL};
    struct node B={2,NULL};
    struct node C={3,NULL};
    //连接三个节点
    A.next=&B;//连接A和B节点,让A中的指针域保存B的地址
    B.next=&C;//连接B和C节点,让B中的指针域保存C的地址
    printf("%d\n",A.data);//打印A中的数据域
    printf("%d\n",(A.next)->data);//打印B中的数据域
    printf("%d\n",(A.next)->next->data);//打印C中的数据域
    return 0;
}

索引存储:

在存储数据同时建立一个附加索引表

也就是索引存储结构 = 索引表 + 存数据文件
可以提高查找速度,特点检索速度快,但是占用内存多,删除数据文件要及时更改索引表。

散列存储: 

          数据在存储的时候与关键码之间存在某种对应关系
          存的时候按照对应关系存
          取的时候按照对应关系取

4.操作

          增、删、改、查

二丶算法

1.概念

  算法就是解决问题的思想方法,数据结构就是算法的基础

2.算法的设计

算法的设计:取决于数据的逻辑结构
算法的实现:依赖于数据的存储结构

3.算法的特点

有穷性:步骤是有限的
确定性:每一个步骤都有明确的含义,无二义性
可行性:在规定时间内可以完成
输入
输出

4.评价算法的好坏

        正确性 :保证算法可以正确实现功能

        易读性 :容易被解读
        健壮性 : 容错处理
        高效性 :执行效率,算法执行快慢容易受到计算机性能的影响,不可以作为评判算法高效性的标准,这通过可执行语句重复执行次数来衡量算法是否高效 。(时间复杂度)
        低存储性 : 占用空间少

5.时间复杂度

            算法的可重复执行语句执行的次数, 通常时间复杂度用一个问题规模函数来表达

            T(n) = O(f(n))
            T(n) //问题规模的时间函数
            n //问题规模,输入量的大小
            O //时间数量级
            f(n) //算法的可执行语句重复执行的次数 用问题规模n的某个函数f(n)来表达

计算大O的方法

            (1)根据问题规模n写出表达式 f(n)
            (2)  只保留最高项,其它项舍去
            (3)  如果最高项系数不为1,除以最高项系数
            (4)  如果有常数项,将其置为1 //当f(n)的表达式中只有常数项的时候,有意义 f(n) = 8

如:f(n)=8 ->O(1)
       f(n) = 3n^5 + 2n^3 + 6*n^6 + 10->O(n^6)

6.空间复杂度

算法占用的空间大小。一般将算法的辅助空间作为衡量空间复杂度的标准。

算法占用的存储空间包括:
   1.输入输出数据所占空间
   2.算法本身所占空间
   3.额外需要的辅助空间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

得物App白屏优化系列|网络篇

一、背景 图片加载作为重中之重的App体验指标&#xff0c;端侧的白屏问题则是其中最为严重的问题之一。想象一下如果你在浏览交易商品、社区帖子等核心场景下&#xff0c;图片无法完成加载是多么糟糕的体验。 网络作为图片资源加载的最主要来源途径&#xff0c;如果不能够快速…

医疗器械维修零基础也可以学吗?

最近您是不是在纠结&#xff1a;医疗器械维修&#xff0c;零基础能学吗&#xff1f;别担心&#xff0c;答案就在这里&#xff01;亲爱的朋友&#xff0c;零基 础绝对不是您追求医疗器械维修技能的绊脚石。我们有精心设计的课程&#xff0c;就像为您量身打造的成长阶梯。 无论您…

海外销量不错,长城汽车因“重大失信影响恶劣”被南方电网拉黑

《港湾商业观察》施子夫 被南方电网“拉黑”的长城汽车&#xff08;601633.SH&#xff1b;02333.HK&#xff09;最近深陷旋涡。最新的消息是长城汽车道歉了。 8月14日&#xff0c;中国南方电网供应链统一服务平台发布一则公告&#xff0c;公告称&#xff0c;为促进供应商诚信…

C语言之字节对齐

目录 1. 引言2.字节对齐原理3.字节对齐应用4.总结 1. 引言 字节对齐属于编译器的内容&#xff0c;决定数据实际的存放方式。主要有两个作用&#xff1a;1.优化数据储存&#xff0c;减少空间浪费 2.增加数据读取速率&#xff0c;本文将于以上两点展开&#xff0c;简述字节对齐的…

四川正信晟锦:同学借钱不还不回消息

在校园的微风轻拂下&#xff0c;我们彼此以赤诚的心交换着青春的誓言。那些日子里&#xff0c;友情如影随形&#xff0c;金钱在这份单纯中显得微不足道。然而&#xff0c;随着时间的流逝&#xff0c;一桩桩借钱不还的事件悄然滋生&#xff0c;如同夜幕下潜行的阴影&#xff0c;…

bC一体化助力终端动销 单日销量提升5倍

想象一下这样令人振奋的场景&#xff1a;某品牌在短短一天内的销量&#xff0c;竟然达到了过去一周的总销量&#xff01;又或者&#xff0c;一个品牌因其零售店的出色表现&#xff0c;就迅速在一个月内席卷了整个乡镇的所有零售店。 这样的终端动销效果&#xff0c;是否让你心…

AC自动机-2(AhoCorasickDoubleArrayTrie)

Aho-Corasick Double Array Trie (AC DAT) 是一种结合了Aho-Corasick算法和Double Array Trie的数据结构&#xff0c;DAT保证了较高的存储效率&#xff0c;AC保证了多模式字符串匹配效率。 一个经典的实现是hanlp的Java实现&#xff1a;AhoCorasickDoubleArrayTrie。 主要构造过…

2024精选:四款超实用免费视频剪辑软件推荐!

每一位内容创作者都离不开一款好用的视频剪辑软件。今天小编推荐几款实用的视频剪辑免费软件&#xff0c;帮助大家轻松制作出高质量的视频作品&#xff01; 福昕视频剪辑 链接&#xff1a;www.pdf365.cn/foxit-clip/ 福昕视频剪辑的多轨道编辑功能让我在视频制作过程中感到非…

Solidworks 创建工程图纸,工程图纸不显示解决

当完成三维零件&#xff0c;制作工程图纸时&#xff0c;发现右侧“工程图图纸”不显示了&#xff0c;不能像以前那样方便的拖拽了。如下图&#xff1a; 解决办法&#xff1a; 步骤1:点击这 ...&#xff0c;打开需要的三维图文件&#xff0c;如“公头主体” 步骤2&#xff1a;…

选择合适的待办事项软件:用户体验报告

国内外主流的10款好用的待办事项软件对比&#xff1a;1.PingCode&#xff1b;2Worktile&#xff1b;3.微软To Do&#xff1b;4.MeisterTask&#xff1b;5.Airtable&#xff1b;6.Wrike&#xff1b;7.Basecamp&#xff1b;8.ProofHub&#xff1b;&#xff1b;9.嘀嗒清单&#xf…

Jmeter版本下载国内外镜像源

官网最新版本 https://archive.apache.org/dist/jmeter/binaries/历史版本 https://archive.apache.org/dist/jmeter/binaries/ 国内镜像源1.阿里云 https://mirrors.aliyun.com/apache/jmeter/binaries/2.腾讯云 https://mirrors.cloud.tencent.com/apache/jmeter/

汇凯贵金属:金子在家怎么清洗才干净

黄金首饰戴久了&#xff0c;难免会沾染灰尘、油污&#xff0c;失去光泽&#xff0c;影响美观。其实&#xff0c;在家就能轻松清洗黄金&#xff0c;让你的金饰重现光彩! 一、 万能清洁组合 材料&#xff1a; 热开水、牙膏、白醋、食盐、小苏打。 步骤&#xff1a; 将以上材料…

Hive SQL语言

目录 Hive SQL之数据库与建库 create database :创建数据库 use database :选择特定的数据库 drop database :删除数据库 Hive SQL之表与建表 create table : 创建表 分隔符指定语法 Hive SQL-DML-Load加载数据 Load语法功能 语法规则之filepath 语法规则之LOCAL …

【日记】好想换电脑(634 字)

正文 最近连着发了好多高温橙色预警&#xff0c;就算坐在行内都能感觉到明显的闷热。 每次写日记想一想今天都做了些什么&#xff0c;总是觉得什么也没做。上班之后感觉生活十分枯燥。明明学生时代有那么多的事情可以写。 昨天涩得太晚了&#xff0c;2 点钟才睡。今天有些睡眠不…

9年多来 LVFS为Linux系统提供了超过1.1亿个固件文件

本周是红帽公司的理查德-休斯&#xff08;Richard Hughes&#xff09;启动 Linux 厂商固件服务&#xff08;LVFS&#xff09;九年的日子&#xff0c;该服务旨在通过开源的 Fwupd 固件更新工具简化固件更新/分发流程。 在纪念 LVFS 九岁生日之际&#xff0c;Richard Hughes 与大…

快速了解软件测试——测试用例的方法

测试用例的编写方法有八种&#xff0c;其中等价类、边界值、判定表、场景法、流程图重要且使用得多 ●等价类●边界值●判定表●因果图[了解]●正交法[了解]●场景法●流程图●错误推测法[了解] 1、等价类 为什么要用等价类划分法? ●从大量数据中划分范围(等价类),然后从每…

DVWA靶场通关(CSRF)

CSRF 是跨站请求伪造&#xff0c;是指利用受害者尚未失效的身份认证信息&#xff08;cookie、会话等&#xff09;&#xff0c;诱骗其点击恶意链接或者访问包含攻击代码的页面&#xff0c;在受害人不知情的情况下以受害者的身份向&#xff08;身份认证信息所对应的&#xff09;服…

【npm】npm 代理问题

使用electron 打包失败&#xff0c;报如下错误&#xff1a; proxyconnect tcp: dial tcp :0: connectex: The requested address is not valid in its context.解决办法 npm config delete proxy npm config delete https-proxy如果设置了代理&#xff0c;使用以下命令设置 …

手撕⼆叉树——堆

1. 树 1.1 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09; 个有限结点组成⼀个具有层次关系的集合。把它 叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 • 有⼀个特殊的…

AntSK:在无网络环境中构建你的本地AI知识库的终极指南

亲爱的读者朋友们&#xff0c;我是许泽宇&#xff0c;今天我将深入探讨一个引人注目的开源工具——AntSK。这个工具让您在没有互联网连接的情况下&#xff0c;仍然能够进行人工智能知识库的对话和查询。想象一下&#xff0c;即使身处无网络环境中&#xff0c;您也可以轻松与AI进…