00019.01 数据结构:物理结构与逻辑结构(-----)

系列文章目录

前言

1、逻辑结构是针对程序员的角度来说的
2、物理结构是针对程序员如何实现这个逻辑结构的角度来说的

一、逻辑结构

1、数据的存储:
(1)变量
简单类型的变量:
int a = 10;
String str = “hello”;
复杂类型的变量:
int[] arr = {1,2,3,4};
(2)数组
存储一组数据,这组数据可以是基本数据类型,也可以是对象。
int[] arr = {1,2,3,4};
Student[] arr = new Student[3];
arr[0] = new Student(“张三”,23);

数组的特点(也可以理解为缺点,但是也不一定是缺点):
①长度是固定的
②(无法确定数据的有效个数)需要额外的变量来记录数组的有效元的个数,例如:total
对于程序员来说:
如果要扩容等,或者要维护元素的个数,都需要大量的工作。所以对它需要有需补充,这就产生了集合
(3)其他容器:集合
每一种集合都有自己的特点,适用于特定的类型

二、物理结构

1.连续的存储空间:数组

数据存储的物理结构

元素是相邻的,在内存中需要开辟的连续的存储空间
缺点:内存比较吃紧时,找一整块空间不好找
优点:访问速度比较快,因为有了首地址,然后根据下标,直接就可以找到对应的元素

2.非连续的存储空间:链式

元素不一定是相邻的,在内存中不需要开辟的连续的存储空间
缺点:访问速度相对数组比较慢,要从头,挨个遍历
优点:不要求空间连续,可以插空

链式中:
线性:链表
非线性:树

分为线性和非线性:
线性:数组、链表、队列(数组或链表)、栈(数组或链表)
非线性:树(二叉树等)、图…

数据结构:
数组、单向链表、双向链表、二叉树、队列、栈、图…

数据的存储结构会影响程序的性能。
数据结构也是算法的基础。

在这里插入图片描述
在这里插入图片描述
这样就引人了双向链表

在这里插入图片描述
如果我们还想提高效率,那应该怎么办
二叉树
在这里插入图片描述

总结

1、数据的存储结构会影响程序的性能。
2、数据结构也是算法的基础。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值