当前位置: 首页 > news >正文

数据结构-基础

1、概念:

        程序 == 数据结构 + 算法

2、程序的好坏

        可读性,稳定性,扩展性,时间复杂度,空间复杂度。

3、数据结构

        是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构,

        能够优化计算机程序的时间和空间效率。

4、分类

        逻辑结构

                线性结构(表),非线性结构(树,图)

        存储结构

                顺序存储,链式存储,索引存储,散列存储

5、数据结构:

        顺序表

        链表

        顺序栈

        链式栈

        队列

        树

        哈希表等

6、顺序表

        1、定义类型

                

 7、工程代码目录结构

        1、main.c :主函数程序代码

        2、fun.c :功能程序代码

        3、fun.h : 工程程序代码头文件

8、gdb调试工具

        l        查看代码

        b  行号/函数名         设置断点

        r        运行代码

        n         单步执行

        s        进入函数内部调试

        p   变量名        查看变量内容

        q         退出调试

9、链表

        链表(Linked List)是一种常见的数据结构,用于存储一系列数据元素。与数组不同,链表

        中的元素不是在连续的内存位置上存储,而是通过指针将每个元素链接到下一个元素

        

        链表的基本结构

                链表由一系列节点(Node)组成,每个节点包含两个部分:

                数据部分:存储实际的数据。

                指针部分:存储指向下一个节点的地址(在单链表中),或在双向链表中指向前一个

                和下一个节点的地址。

        

        单向链表(Singly Linked List)

                 每个节点只包含一个指向下一个节点的指针。只有一个方向可以遍历链表。

        

        链表的优缺点

                优点:

                        动态大小:链表的大小是动态的,不像数组需要预先确定大小。

                        高效插入和删除:在链表中插入或删除元素时,无需移动其他元素,尤其是当

                        在链表的头部或尾部插入时,操作非常高效(O(1)时间复杂度)。

                缺点:

                        访问效率较低:访问链表中的某个元素需要从头节点开始逐一遍历,时间复

                        杂、 度为O(n),相比之下,数组的访问是O(1)。

                        额外的内存消耗:每个节点需要额外存储指针,相比数组,需要更多的内存。

相关文章:

数据结构-基础

1、概念: 程序 数据结构 算法 2、程序的好坏 可读性,稳定性,扩展性,时间复杂度,空间复杂度。 3、数据结构 是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构, 能…...

SystemUI中NavigationBar分析

需求 SystemUI是一个与系统组件显示紧密相关的应用,包含快捷中心、消息通知、状态栏、导航栏、任务中心等诸多模块,本文介绍NavigationBar模块。SystemUI源码位于/frameworks/base/packages/SystemUI,Android13平台。NavigationBar显示如下&…...

MySQL的底层原理与架构

前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...

三极管的截止、放大、饱和区

三极管的几个区,都有什么用: 截止区:晶体管不导通,用于开关电路的“关”状态。 放大区:晶体管用于信号放大,集电极电流与基极电流成正比。 饱和区:晶体管完全导通,用于开关电路的“…...

2025-2-7-算法学习(一) 动态规划-习题1 300.最长递增子序列

文章目录 算法学习(一) 动态规划-习题1 300.最长递增子序列(1)题目(2)举例:(3)提示(4)分析(5)动态规划代码:&a…...

学习日记-250207

一.论文 1.Prompt Learning for News Recommendation 任务不一致(LLM与实际任务)产生prompt提示。 Prompt Learning for News Recommendation 论文阅读 SIGIR2023-CSDN博客 2.GPT4Rec: A Generative Framework for Personalized Recommendation and…...

【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性

论文信息 标题: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network论文链接: arXivGitHub链接: https://github.com/murufeng/EPSANet 创新点 EPSANet提出了一种新颖的金字塔挤压注意力(PSA)模块,旨…...

代码随想录算法训练营第三十一天| 回溯算法04

491. 递增子序列 题目: 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 这题需要注意的点: 1. path长度在2以上才放入最终结果 2. 需要记录已经使用过的数字&am…...

pycharm集成通义灵码应用

在pycharm中安装通义灵码 1、打开files-settings 2、选中plugins-搜索”TONGYI Lingma“,点击安装 3.安装完成后在pycharm的右侧就有通义灵码的标签 4、登录账号 5、查看代码区域代码,每一个方法前面都多了通义灵码的标识,可以直接选择…...

赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索

hello~朋友们!好久不见! 今天给大家带来赛博算命第三期——梅花易数的java实现 赛博算命系列文章: 周易六十四卦 掐指一算——小六壬 更多优质文章:个人主页 JAVA系列:JAVA 大佬们互三哦~互三必回!&#xf…...

【Leetcode刷题记录】54. 螺旋矩阵--模拟,以及循环条件处理的一些细节

54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 解题思路 顺时针螺旋顺序也就是“从左向…...

c++计算机教程

目的 做出-*/%计算机 要求 做出可以计算-*/%的计算机 实现 完整代码 #include<bits/stdc.h> int main() {std::cout<<"加 减- 乘* 除/ 取余% \没有了|(因为可以算三位)"<<"\n"<<"提示:每打完一个符号或打完一个数,\…...

蓝桥杯Java之输入输出练习题

题目 1&#xff1a;多组AB&#xff08;基础版&#xff09; 题目描述&#xff1a; 输入多组数据&#xff0c;每组数据包含两个整数 A 和 B&#xff0c;计算它们的和。输入以 文件结尾&#xff08;EOF&#xff09; 结束。 输入格式&#xff1a; 每行包含两个整数 A 和 B&#x…...

【R语言】环境空间

一、环境空间的特点 环境空间是一种特殊类型的变量&#xff0c;它可以像其它变量一样被分配和操作&#xff0c;还可以以参数的形式传递给函数。 R语言中环境空间具有如下3个特点&#xff1a; 1、对象名称唯一性 此特点指的是在不同的环境空间中可以有同名的变量出现&#x…...

【系统架构设计师】分布式数据库透明性

目录 1. 说明2. 分片透明3. 复制透明4. 位置透明5. 逻辑透明&#xff08;局部数据模型透明&#xff09;6.例题6.1 例题1 1. 说明 1.在分布式数据库系统中&#xff0c;分片透明、复制透明、位置透明和逻辑透明是几个重要的基本概念。2.分片透明、复制透明、位置透明和逻辑透明是…...

openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包

文章目录 openpnp2.2 - 环境搭建 - 编译 调试 打包概述笔记前置任务克隆代码库切到最新的tag清理干净编译工程关掉旧工程打开已经克隆好的openpnp2.2工程将IDEA的SDK配置为openjdk23 切换中英文UI设置JAVA编译器 构建工程跑测试用例单步调试下断点导出工程的JAR包安装install…...

OpenCV:图像修复

目录 简述 1. 原理说明 1.1 Navier-Stokes方法&#xff08;INPAINT_NS&#xff09; 1.2 快速行进方法&#xff08;INPAINT_TELEA&#xff09; 2. 实现步骤 2.1 输入图像和掩膜&#xff08;Mask&#xff09; 2.2 调用cv2.inpaint()函数 2.3 完整代码示例 2.4 运行结果 …...

QT全局所有QSS样式实时切换

方法如下&#xff1a; void loadQss(int qssType) {QString name;if (qssType 1)name ":/qss/day.qss";elsename ":/qss/night.qss";QFile file(name);file.open(QFile::ReadOnly);QString qss;qss file.readAll();qApp->setStyleSheet(qss);file.…...

MySQL三大版本的演进

三大版本的演进 文章目录 三大版本的演进一&#xff1a;5.6版本&#xff08;大跃进时期&#xff09;1&#xff1a;支持只读事务2&#xff1a;innodb存储引擎增强2.1&#xff1a;缓冲池刷盘策略优化2.2&#xff1a;BufferPool缓冲池预热 3&#xff1a;新增Performance_Schema库监…...

利用 IMU 估计人体关节轴向和位置 —— 论文推导

Title: 利用 IMU 估计人体关节轴向和位置 —— “Joint axis and position estimation from inertial measurement data by exploiting kinematic constraints” —— 论文推导 文章目录 I. 论文回顾II. 铰接关节的约束1. 铰接关节约束的原理2. 铰接关节约束的梯度3. 铰接关节约…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...