数据结构——开篇

一、数据结构(内存中)

1、定义

用来保存一种或多种特定关系的数据的集合(组织和存储数据)。

程序 = 数据结构+算法

2、特定关系

(1)逻辑结构

数据元素与元素之间的关系。

分类:①集合:关系平等;

②线性结构 :一对一(向前找有一个前驱数据 、向后找有一个后继数据);

eg:表(数组、链表)、队列、栈。

③树形结构:一对多;

eg:二叉树。

④图形结构(网状结构):多对多。

(2)物理结构

数据的逻辑结构 在计算机内存中的存储方式

①顺序存储:连续的;eg:数组。

**②链式存储:**非连续;eg:链表。

**③索引存储:**索引表;(需维护)

④哈希存储(散列存储):关键字通过计算(哈希函数 addr=f(key))找到数据存储位置。

注:索引与哈希均是为了提高数据查找效率。

★★区别:

二、链表

1、单向链表

有头链表、无头链表。

<面向过程编程思想>------>分步完成;<面向对象编程思想>------>用什么做什么,更好封装高内聚低耦合)。

例如:实现单向链表创建、头插、尾插、头删、尾删(修删改查)。

相关推荐
历程里程碑9 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun9 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
Pluchon9 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
小龙报10 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
dllxhcjla10 小时前
数据结构和算法
数据结构
历程里程碑11 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
sin_hielo11 小时前
leetcode 1653
数据结构·算法·leetcode
李日灐11 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
熬夜有啥好11 小时前
数据结构——排序与查找
数据结构
YuTaoShao11 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode