新闻详情

新闻详情

首页 / 资讯中心 / 详情

数据结构:数据结构基础、顺序表、链表

发布时间:2026/9/29 6:42:07来源:尧图网络
数据结构:数据结构基础、顺序表、链表
Algorithms Data Structures Programs——尼克劳斯·维尔特Niklaus Wirth目录1.数据结构概念二、顺序表三、链式表linklist【重点应用非常多】1.数据结构概念1.概念程序 数据结构 算法数据结构:程序操作数据对象的结构是数据元素的集合这些元素之间存在某种关系。算法:是程席操作数据对象的方法是解决特定问题的一系列步骤意义程序的设计和实现都围绕着这两个核心组件展开。选择合适的数据结构可以优化算法的执行提高程序的整体效率。2.程序的效率的衡量指标时间复杂度: 数据量增长与程序运行时间增长呈现的比例函数关系称为时间复杂度函数简称为时间复杂度【按从优到劣排序】O(c)O(logn)O(n)O(nlogn)O(n^2)O(n^3)...0(2^n)空间复杂度:数据量增长与程序空间增长呈现的比例函数关系称为空间复杂度3.数据结构1.逻辑结构线性结构表状结构一对一关系树形结构二叉树一对多关系图形结构多对多关系2.存储结构这也是数组与链表的区别顺序存储优点——访问元素方便缺点——插入数据不便删除数据效率也低无法利用小空间即内存碎片链式存储优点——①插入、删除效率高②可以利用小空间即内存碎片缺点——访问元素不方便增加额外空间的开销​索引存储——像书的目录一样散列存储——哈希表3.具体常用数据结构类型分类顺序表Contiguous List链式表【重点应用非常多】顺序栈链式栈顺序队列就是排队链式队列二叉树完全二叉树、满二叉树哈希表常见排序和查找算法二、顺序表概念本质上是数组(动态数组)只不过存于堆区通过申请堆区空间存储数据通过首地址完成对所有空间的访问申请​释放​调用​makefile​三、链式表linklist【重点应用非常多】1简介概念链表是一种牺牲随机存取性能以换取动态性和插入/删除效率的数据结构适用于频繁增删、数据规模不确定的场景但需注意其空间开销和顺序访问的限制。主要缺点失去随机存取能力无法像数组一样通过索引直接访问元素。空间开销较大每个结点需额外存储指针占用更多内存。访问效率较低查找特定结点需遍历链表。2.3种分类单向链表分有头链表和无头链表​​注意无头链表插入数据较麻烦会使用二级指针所以学习有头链表双向链表​双向循环链表【应用最多内核里使用。如freertos操作系统】​3.单向链表链表最后一个节点的指针数据pnext永远为空∵链表是前一个节点指向下一个节点最后一个节点的下一个节点没有所以它存的下一个节点的地址为空函数①——空结点创建分析​申请​​调用​函数②——节点后插函数作用:在某个节点*pHead的后边插入一个节点并存储数据TmpData分析四步①申请新节点空间②存放数据到新节点的Data③将pHead节点的pNext值赋值给新节点pNext④将新节点的pNext赋给pHead的节点​代码​函数③——链表元素的访问函数两种方法分析以下两种方法都能实现p为当前节点首地址左边的思路可以遍历所有元素但是无法得到最后一个元素除非再遍历一遍比较麻烦 右边的思路指针一指向最后一个元素就停下来了想要对最后一个元素读取需在while外边再操作一行​​代码​调用​结果​函数④——链表元素的删除分析​​代码​调用​结果​函数⑤——链表元素的替换分析遍历所有节点当节点数据为需要修改的数据时将其改为新数据代码​调用​结果​函数⑥——链表的释放分析定义两个指针指向链表头代码可通过valgrind检查
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Trae 配 TaoToken 实战:Pencil 设计图制作与 Figma 设计稿迁移手把手教程 2026/9/29 7:42:21

Trae 配 TaoToken 实战:Pencil 设计图制作与 Figma 设计稿迁移手把手教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
机器人运动学实战笔记:D-H参数、坐标系与工程落地 2026/9/29 7:42:08

机器人运动学实战笔记:D-H参数、坐标系与工程落地

1. 项目概述:这本笔记不是教材,是林沛群老师手写推演的“运动学思维切片”“机器人运动学笔记2——林沛群”这个标题乍看像一本普通讲义,但如果你翻过原稿扫描件,会立刻意识到它根本不是为初学者写的入门手册,而是一份…

阅读更多 →
没有USB转TTL?用Keil MDK虚拟串口调试STM32串口全攻略 2026/9/29 7:42:08

没有USB转TTL?用Keil MDK虚拟串口调试STM32串口全攻略

如果你跟我一样,经常在深夜写完一段串口收发代码,却发现手头既没有USB转TTL模块,开发板上唯一的串口又被别的传感器占着,只能把数据一条条打进调试器的Watch窗口里核对,那这篇文章就是写给你的。我在Keil MDK里折腾虚拟…

阅读更多 →
ZeroLaunch-rs输入法:中文输入无缝集成 2026/9/29 7:42:01

ZeroLaunch-rs输入法:中文输入无缝集成

ZeroLaunch-rs输入法:中文输入无缝集成 🎯 痛点直击:中文搜索的困境 还在为Windows应用启动器的中文搜索而烦恼吗?传统启动器要么不支持中文拼音搜索,要么响应缓慢,要么需要繁琐的切换操作。ZeroLaunch-rs通…

阅读更多 →
ZeroLaunch-rs硬件要求:最低配置与推荐配置 2026/9/29 7:42:01

ZeroLaunch-rs硬件要求:最低配置与推荐配置

ZeroLaunch-rs硬件要求:最低配置与推荐配置 🚀 性能优化型应用启动器的硬件需求分析 还在为Windows启动器卡顿、响应慢而烦恼吗?ZeroLaunch-rs作为基于Rust Tauri Vue.js构建的极速应用启动器,对硬件配置有着极低的要求&#xf…

阅读更多 →
ZeroLaunch-rs性能监控:资源使用情况分析 2026/9/29 7:42:01

ZeroLaunch-rs性能监控:资源使用情况分析

ZeroLaunch-rs性能监控:资源使用情况分析 🚀 概述 还在为Windows启动器卡顿、内存占用高而烦恼吗?ZeroLaunch-rs作为一款基于Rust Tauri构建的高性能应用启动器,在资源管理方面有着出色的表现。本文将深入分析ZeroLaunch-rs的资源…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉