2024年CSP-J第一轮暑假冲刺训练营(4):数据结构

一、数据结构

1. 数据

数据就是电脑可以存储的东西,例如一段文字、图片、视频、音频等等。
计算机系统中,各种字母、数字符号的组合、语音、图形、图像等,统称为数据。
计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号总称。

2. 数据结构

数据结构是计算机存储、组织数据的一个方式,是指相互之间存在一种,或多种特定关系的数据元素的集合。

3. 数据结构分类

数据结构
逻辑结构
非线性结构
集合结构
同属一个集合别无其他关系
树状结构
一对多
图状结构
多对多
线性结构
一对一
物理/存储结构
顺序结构
链式结构
单链表
双链表
循环链表
索引结构
-J不涉及
散列结构

二、栈/队列

详见 栈/队列教程表达式求值教程

1. 栈(stack)

栈:只能在某一端插入或删除的特殊线性表,FILO

程序/词汇意义
.push(x)元素 x x x 入栈
.pop()将栈顶元素弹出
.top()查询栈顶元素
.empty()查询栈是否为空
.size()查询栈的元素个数
上溢栈满入栈
下溢栈空出栈

考题:合法出栈顺序
方法:依次枚举

2. 表达式

表达式
前缀表达式
又名波兰表达式
运算符在两个操作数之前的表达式
中缀表达式
运算符在中间的表达式
后缀表达式
又名逆波兰表达式
运算符在两个操作数之后的表达式

3. 队列(queue)

队列:一种从一端删除另一端插入的特殊线性表,FIFO

程序/词汇意义
.push(x)元素 x x x 入队
.pop()将队首元素弹出
.front()查询队首元素
.back()查询队尾元素
.empty()查询队列是否为空
.size()查询队列的元素个数
上溢队满入队
下溢队空出队
假上溢队列存在可用空间时发生上溢

三、链表

1. 单链表

插入:

p->next = a->next;
a->next = p;

删除:

a->next = p->next;
delete p;

2. 双链表

插入:

q->next = p;
q->prev = p->prev;
p->prev->next = q;
p->prev = q;

删除:

p->prev->next = p->next;
p->next->prev = p->prev;
delete p;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值