news 2026/10/15 14:16:33

数据结构-基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构-基础

数据结构 —— 研究数据与数据之间的关系

怎么学习?
1.数据结构 --- 特点 --- 抽象
--- 数据的操作
--- (指针)
代码实现?
2.学习
建议 画图 (让抽象关系可以清晰明了)

3.c语言:
1.语法
2.基本编程思维
3.处理单个或几个变量的数据
处理批量数据
(我们通常用数组+结构体)
4.数据规模更大
研究
数据与数据之间的关系 (数据结构)
再
结合处理数据的思路 (算法)
最终实现好的编程效果
4. 优秀程序员的基本功:
一门编程语言+数据结构和算法
(好的)程序设计 = (好) 算法 + (合适的)数据结构

一、数据结构的内容

1)术语

1.数据:是描述客观事物的符号,是计算机中可以操作的对象
2.数据元素:是组成数据的、有一定意义的基本单位,通常作为整体出现(人)
3.数据项:一个数据元素可以由若干个数据项组成(器官)
(数据项是数据不可分割的最小单位。)
4.数据对象:是性质相同的数据元素的集合,是数据的子集(人这样的类型)
5.数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。(小红和小明 之间的关系)

2)逻辑关系

逻辑关系 —— 反应的是数据与数据之间的对应关系(我们认为的一种关系)
1.集合:
元素与元素之间同属一类 (无其他对应关系)
2.线性:
元素与元素之间一对一的
除了:
起始元素和结尾元素
线性关系中每个元素都有自己的一个前驱节点和后继节点
3.树形:
有层次,一对多
班主任
班长
副 班 学 纪
班 委 委 委

4.图形:
元素与元素之间多对多
应用场景:
地图
抢票软件

3)存储结构

存储结构(内存上怎么存储):

1)顺序的存储结构

存储一组整数数据
0123456789//学号
具有线性逻辑关系的一组数据
intsno[10] ={0,1,2,3,4,5,6,7,8,9} ;
顺序存储(数组):
缺点:
增
删
优点:
随机访问方便

2)链式的存储结构

链---"铁链 狗链
优点:
增
删除
缺点:
访问需要遍历

3)索引结构

看书 —— index(目录-索引)
专门维护一个索引表

4)散列(哈希)结构 --- 哈希查找

哈希表
值 <-->
散 <--哈希函数--> 位置 (通过这个函数一下就能找到 O(1) 的时间复杂度)

另:

同一个逻辑关系的数据 可以用不同的存储结构
因为不同存储结构有自己的优缺点 -- 需要结合实际问题选择

二、数据结构与算法

算法是解决特定问题求解步骤的描述
在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作

算法——就是解决问题的步骤
(是解决问题思路的 - 具体描述)

算法特性--写一个算法需要考虑的方面:
1.输入
2.输出
3.有穷性
4.确定性
5.可行性

好算法:
1.正确性
2.可读性
3.健壮性(鲁棒性)
4.时间效率和存储量低
(时间复杂度和空间复杂度)
内存
GPU
CPU

三、顺序表

可以解决线性的逻辑关系

顺序存储:c语言,c++,java,python

C语言中:
数组(顺序表)
算法:
1.创建int a[10];
2.增
3.删
4.改
5.查
6.销毁

创建:
int a[10];
int *p = malloc(sizeof(int)*10);
增加数据:
inputArray
insertArray(插入数据)
删除数据:
deleteArray
改:
modifyArray//找到修改
查:
findArray
销毁:
堆区
数据销毁
空间销毁

四、链式表

可以解决线性的逻辑关系

实现:
链表的元素特点描述:
节点(结点)
包含:
a.数据
b.下一个节点的地址

1)创建:

一般创建一个空链表
数据结构中 --- 要带头节点的链表

1.1 空链表:
只有头节点
而且头节点指针域为NULL

1.2 首节点:

第一个有效数据的节点

1.3 尾节点

最后一个有效数据的节点(zhizhenyu为 NULL )

2)增:

1.头插

2.尾插

3)打印数据(遍历变量)

4)查找

5)修改

6)删除

1.头删

2.尾删

3.删任意位置

7)释放链表

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 14:16:25

Keil uVision2老旧开发环境搭建与兼容性实战指南

简介&#xff1a;本资源为Keil uVision2嵌入式开发环境完整安装包及配套激活序列号&#xff0c;面向单片机初学者、高校电子类专业学生及嵌入式开发入门工程师&#xff0c;解决经典ARM Cortex-M系列MCU项目开发中IDE获取难、注册繁琐等实际问题。压缩包为RAR格式&#xff0c;大…

作者头像 李华
网站建设 2026/10/15 14:16:23

集团企业怎么少走弯路建绩效体系?从十种经典方法到选型三问

绩效管理是公认的世界级管理难题。华夏基石彭剑锋在《绩效管理的十大方法》&#xff08;华夏基石e洞察&#xff09;里系统梳理了关键绩效指标、平衡计分卡、目标与关键结果、经济增加值、标杆管理、360度评价、积分制、流程绩效、项目绩效、战略绩效十种工具——方法越来越多&a…

作者头像 李华
网站建设 2026/10/15 14:16:09

把经典变成肌肉记忆:《道德经》技能蒸馏实战法

1. 这不是知识搬运&#xff0c;而是技能萃取&#xff1a;为什么要把《道德经》“蒸馏”成skill&#xff1f;你有没有试过读完一本经典&#xff0c;合上书页时觉得醍醐灌顶&#xff0c;可三天后连“道可道非常道”都记不全&#xff1f;更别说在开会卡壳时突然想起“大音希声”&a…

作者头像 李华
网站建设 2026/10/15 14:15:31

7689与7606示波器采样率语义差异:总速率与同步速率的实测含义

www.z-linear.com用户手册示波器章节有一段容易被忽略的说明&#xff1a;"示波器左侧采样率是指ADC的采样率&#xff0c;如果是7606型号&#xff0c;则8通道采样率相同&#xff1b;如果是7689型号&#xff0c;则为总的采样率&#xff0c;单通道采样率等于总采样率除以通道…

作者头像 李华
网站建设 2026/10/15 14:15:12

三层架构与MVP模式结合实践解析

1. 架构设计中的经典组合模式解析在软件工程领域&#xff0c;三层架构与MVP模式的结合就像咖啡与牛奶的经典搭配——各自独立存在时已经足够优秀&#xff0c;但经过恰当配比后能产生更醇厚的风味。我曾在多个中大型企业级项目中实践这种组合&#xff0c;发现它能同时满足技术规…

作者头像 李华