数据结构(python)——基本概念

目录

1、基本概念

2、逻辑结构

2.1、集合结构

2.2、线性结构

2.3、树形结构(层次结构)

2.4、图形结构(网状结构)

3、物理结构

3.1、顺序存储结构

3.2、链式存储结构

3.3、索引存储结构

3.4、散列存储结构

4、运算操作

5、回顾


数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

总结:学习数据结构主要学习数据元素集合的逻辑结构、物理结构以及对数据元素集合的运算操作。

数据结构三要素:

1. 逻辑结构

2. 物理结构(计算机:物理:真实存在)

3. 运算操作

1、基本概念

数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

数据元素:数据元素是组成数据且有一定意义的基本单位,在计算机中通常作为整体处理。又被称为节点。(人)

节点这个词一定要熟悉,在链表中会大量出现。

数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。()

数据对象:是性质相同的数据元素/节点的集合,是数据的子集。

代码中用结构体类型定义的变量叫数据元素,用该数据类型定义的数组叫数据对象,每一个字段叫数据项。

数据元素(节点):从第二行开始每一行就是一个数据元素。(节点)

数据项:对于某数据元素来说,它的编号、书名、作者以及出版社等为数据项。

数据对象:该表格除去第一行结构体定义外,剩下的整体就相当于一个结构体数组。

2、逻辑结构

数据对象中 数据元素/节点 之间的相互关系。

逻辑结构通常分为以下几种:

2.1、集合结构

数据元素/节点 除了同属于一个集合外,他们之间没有其他关系。

同班同学

2.2、线性结构

数据元素/节点 是一对一的关系。

排队

2.3、树形结构(层次结构)

数据元素/节点 之间存在一种一对多的关系。

族谱(单传例外)

2.4、图形结构(网状结构)

人际关系网

3、物理结构

3.1、顺序存储结构

把 数据元素/节点 存放在地址连续的存储单元里,这样的存储成为顺序存储结构。(数组、列表)

特点:

1、内存连续

2、相对于链式存储结构每个元素占用的空间少。

3.2、链式存储结构

把 数据元素/节点 存放在任意的内存单元里。数据元素/节点 之间的逻辑关系通过附设的指针域来表示,由此得到的存储表示成为链式存储结构。

特点:

1、内存不连续

2、通过指针连接

传统的数据类型:int char short  float ->数据项
自己构造的数据类型:struct linklist
问题:环境-》温度、湿度、PM2.5、雾霾等
typedef char datatype
struct linklist
{
    datatype data;
    struct linklist *next;
}
struct linklist A = {996,NULL};
struct linklist B;
B.next = NULL;
B.data = 520;
A.next = &B;

996  520

# 定义一个类
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

# 实例化对象
A = Node('A')
B = Node('B')
C = Node('C')
D = Node('D')

# 节点之间建立联系
A.next = B
B.next = C
C.next = D

# 测试链表打印结果
current = A
while current:
    print(current.data)
    current = current.next

3.3、索引存储结构

在存储数据的同时,建立一个附加的索引表,即索引存储结构 = 数据文件 + 索引表。

电话号码查询问题:为提高查询速度,在存储用户数据文件的同时建立一张姓氏索引表,如下所示:

查找一个人的电话就可以先查索引表,再查相应的数据文件,加快了查询速度。

特点:

检索速度快。

多了一张索引表,故占用内存多。

删除数据文件时要及时更改索引表。

3.4、散列存储结构

过构造相应散列函数,由散列函数的值来确定 数据元素/节点 存放的地址。

特点:

存的时候按照对应关系存。

取的时候按照对应关系取。

蜂巢、外卖

逻辑结构是面向问题的,物理结构是面向计算机的。其基本目标就是将数据及其逻辑关系存储到计算机的内存中。

4、运算操作

增、删、改、查

5、回顾

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值