数据结构与算法

  • 数据结构:

有一种或多种特定关系的集合

data struct = (data,relation);

data:数据集合

relation:关系集合

数据:信息的载体

数据元素:数据的组成单位,一般作为一个整体考虑

数据项:数据元素的组成单位

数据对象:用特定结构体定义的数组

struct stu{
    int age;
    char name[32];
}

struct stu zc;//数据元素
zc.age=10;//数据项
struct stu stus;//数据对象
  • 关系:

  • 逻辑结构:

线性:一对一的关系,除了第一个没有唯一前驱,最后一个没有唯一后继,

其余元素都有唯一前驱和唯一后继

如:表、栈(fd满递减)、队列

非线性:

如:

树:一对多的关系,除了第一个元素没有唯一前驱,其余的元素都有唯一前驱并且可以有多个后继(压缩、排序)

图:多对多的关系,

  • 存储结构:

顺序存储:类似于数组,把逻辑上相邻的数据元素在物理地址上存储上也相邻

链式存储:把逻辑上相邻的数据元素在物理地址上可以不相邻

数据域:存放数据

指针域:指向下一个数据元素的地址

索引存储

散列存储

  • 运算:

增、删、改、查、判空、判满、清空、销毁、排序

  • 算法:

一个有穷规则的有序集合

冒泡排序、选择排序、插入排序、希尔排序、快速排序

算法评判标准:

空间复杂度

时间复杂度

数据结构与算法相互依存

  • 实现:

顺序表:一对一,逻辑上与物理上都相邻

链表:一对一,逻辑上相邻,物理上可以不相邻

顺序栈:一对一,逻辑上相邻,物理位置相邻,先进后出

链栈:一对一,逻辑上相邻,物理位置可以不相邻,先进后出

循环队列:一对一,逻辑上相邻,物理位置相邻,先进先出

链式队列:一对一,逻辑上相邻,物理位置可以不相邻,先进先出

顺序树:逻辑上一对多,将节点存储在一个数组中

链树:逻辑上一对多,物理位置可以不相邻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值