当前位置: 首页 > 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. 铰接关节约…...

ReID跨镜需人工复核,镜像视界无感定位实现全自动全链路闭环

ReID跨镜需人工复核&#xff0c;镜像视界无感定位实现全自动全链路闭环在全域视频感知与人员动态管控行业应用落地进程中&#xff0c;传统依托ReID行人重识别搭建的跨镜追踪体系&#xff0c;长期深陷算法识别偏差大、数据容错率低、最终必须依赖人工二次复核的运营困局&#xf…...

从WCGW代码事故集看软件开发的常见陷阱与防御性编程实践

1. 项目概述&#xff1a;一个“看热闹不嫌事大”的代码仓库在程序员的世界里&#xff0c;除了正经八百的业务代码和开源框架&#xff0c;总有一些项目&#xff0c;它们诞生的初衷不是为了解决某个严肃的技术难题&#xff0c;而是为了捕捉、记录那些让人哭笑不得、甚至有点“幸灾…...

深入解析浮点数内存存储与IEEE 754标准:从0.1+0.2≠0.3说起

1. 从一次“诡异”的计算错误说起前几天&#xff0c;一个刚入行的同事跑来找我&#xff0c;一脸困惑地给我看了一段Python代码。他写了个简单的循环累加&#xff0c;想计算0.1加10次&#xff0c;理论上应该等于1.0。但打印出来的结果却是0.9999999999999999。他反复检查了代码&…...

构建思想知识图谱:NLP与Elasticsearch在结构化资料库中的应用

1. 项目概述与核心价值最近在整理一些历史资料和思想研究时&#xff0c;我接触到了一个名为“mao-zedong-perspective”的项目。这个项目名直译过来就是“毛泽东视角”&#xff0c;它并非一个传统的软件应用&#xff0c;而更像是一个数字化的思想资料库或研究框架。作为一名长期…...

Unity VR立体反射与抗锯齿技术实战解析

1. Unity VR 立体反射与抗锯齿技术深度解析在VR开发中&#xff0c;视觉真实感直接决定了用户体验的质量。立体反射和抗锯齿作为两项核心技术&#xff0c;前者解决了传统平面反射缺乏深度感的问题&#xff0c;后者则消除了画面边缘的锯齿瑕疵。本文将基于实际项目经验&#xff0…...

GitHub Pages静态博客全栈指南:从Jekyll部署到SEO优化

1. 项目概述&#xff1a;一个静态博客的诞生与演进 如果你对个人博客、技术分享或者打造一个纯粹属于自己的线上空间有过想法&#xff0c;那么“eirikrrrr/eirikrrrr.github.io”这个项目标题对你来说&#xff0c;可能就是一个绝佳的起点和范本。这本质上是一个托管在GitHub P…...

168.YOLOv8零基础直达实战|COCO128+CU118环境+完整注释代码

摘要 YOLO(You Only Look Once)系列算法是目标检测领域最主流的实时检测框架,从v1到v8经历了多次架构迭代与性能飞跃。本文旨在提供一份零基础直达实战的完整指南,不依赖任何图片,仅通过逻辑推导与代码实现,帮助读者掌握YOLO的核心原理、环境搭建、模型训练、推理部署及…...

智慧航运主题汇总(2026-05-13更新)

智慧航运主要包括利用区块链、大数据、5G、卫星通讯等技术手段&#xff0c;以“数字化、智能化”的理念&#xff0c;实现航运各个业务“提升效率、提升安全、降低风险、提高收益、提升客户体验”等目标。比如利用人工智能手段&#xff0c;实现船舶更加安全运行&#xff08;防海…...

数据库——(DB、DBMS、SQL)

数据库——&#xff08;DB、DBMS、SQL&#xff09; 前言数据库是存放数据的仓库。它的存储空间很大&#xff0c;可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放&#xff0c;是有一定的规则的&#xff0c;否则查询的效率会很低。当今世界是一个充满…...

Diablo Edit2终极指南:如何轻松编辑暗黑破坏神2角色存档

Diablo Edit2终极指南&#xff1a;如何轻松编辑暗黑破坏神2角色存档 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 暗黑破坏神2作为经典的动作角色扮演游戏&#xff0c;拥有庞大的玩家群体。然而…...