数据结构绪论由于几天后数据结构要期末考试,最近几天会出数据结构相关的教程,以作复习。
参考资料:
数据结构(C语言版) —严蔚敏,吴伟民
数据结构与算法分析 —Mark Allen Weiss
2025年数据结构考研复习指导 —王道论坛
数据结构的基本概念基本术语数据元素:数据的基本单位,由若干数据项组成
数据对象:具有相同性质的数据元素的集合
抽象数据类型:一组操作的集合
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素之间的关系称为结构。数据结构包括三方面内容:逻辑结构、存储结构和数据的运算
数据结构三要素1.数据的逻辑结构
逻辑结构是指数据元素之间的逻辑关系,与数据的存储无关,分为线性结构和非线性结构
集合:结构中的数据元素除“同属一个集合”外,别无其他关系。
线性结构:结构中的数据存在一对一的关系
树形结构:结构中的数据存在一对多的关系
图状结构:结构中的数据存在多对多的关系
2.数据的存储结构
存储结构是指数据结构在计算机中表示(又称映像),也称物 ...
题目难点对数学功底的考察,能否根据题目描述建立起数学公式, 解出关键的未知数(第二次上下车的人数)
题目
洛谷链接: P1011 [NOIP1998 提高组] 车站 - 洛谷 | 计算机科学教育新生态
[NOIP1998 提高组] 车站题目描述火车从始发站(称为第 站)开出,在始发站上车的人数为 ,然后到达第 站,在第 站有人上、下车,但上、下车的人数相同,因此在第 站开出时(即在到达第 站之前)车上的人数保持为 人。从第 站起(包括第 站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第 站),都满足此规律。现给出的条件是:共有 个车站,始发站上车的人数为 ,最后一站下车的人数是 (全部下车)。试问 站开出时车上的人数是多少?
输入格式输入只有一行四个整数,分别表示始发站上车人数 ,车站数 ,终点站下车人数 和所求的站点编号 。
输出格式输出一行一个整数表示答案:从 站开出时车上的人数。
样例 #1样例输入 #11>5 7 32 4
样例输出 #11>13
提示对于全部的测试点,保 ...
题目链接:TUOJ(需有账号)
题目背景传说每当月光遍布西西艾弗岛,总有一道身影默默守护着居民们的美梦。
题目描述梦境中的西西艾弗岛由n+1 个区域组成。梦境巡查员顿顿每天都会从梦之源(0 号区域)出发,顺次巡查 1,2,⋯,n 号区域,最后从n 号区域返回梦之源。
在梦境梭需要消耗美梦能量:
从梦之源出发时,顿顿会携带若干初始能量;
从第 i 号区域前往下一区域(0≤i≤n)需要消耗 ai 单位能量,因此从第 i 号区域出发时,顿顿剩余的美梦能量需要大于或等于ai单位;
顺利到达第 i 号区域(1≤i≤n*)后,顿顿可以从当地居民的美梦中汲取 bi 单位能量作为补给。
假设顿顿初始携带 w 单位美梦能量,那么首先需要保证 w≥a0,这样顿顿便可消耗a0 能量穿梭到 1 号区域、进而获得 b1 单位能量补给。巡查 1 号区域后,顿顿剩余能量为 w−a0+b1,如果该数值大于或等于 a1,顿顿便可继续前往 2 号区域。依此类推,直至最后消耗 an 单位能量从 n 号区域返回梦之源,便算是顺利完成整个巡查。西西艾弗岛,又迎来安宁的一夜,可喜可贺!
作为一个成熟的梦境巡查员,顿顿已经 ...
数据结构-散列表(hash table)
参考资料:数据结构与算法分析 —Mark Allen Weiss
一、基本介绍散列(hashing) :一种以常数平均时间执行插入、删除和查找的技术,但对元素间进行排序的操作不被支持,例如寻找最大值和最小值。
散列表(hash table): 一个含有关键字的具有固定大小的数组,通过关键字查找对应值,只需要O(1)的时间复杂度。
散列函数:将每个关键字映射到从0到size-1这个范围中的某个数,并且放到适当的单元。这个映射就叫做散列函数。
二、散列函数关键字为整数的设置方法:
如果输入的关键字是整数,则一般合理的方法就是直接返回 关键字% 表长, 最好保证表长为素数(质数),以避免某些特殊情况,例如表长为10,而关键字均以0为个位的情况。
关键字为字符串的设置方法:
通常,关键字是字符串,在这种情形下,散列函数需要仔细选择。
用ASCII码直接相加并取余并不合适, 表长很大,就不能均匀地很好地分配关键字。
代码如下
1234567891011int Hash(const char *key, int len){ unsigned i ...
五大编程语言的运算符优先级
图片来自网络, 本文仅供分享、学习目的
C语言
C++
Java
Python下为Python3的各符号优先级顺序,优先级从高到低
GoGo的各运算符优先级如下,优先级==从低到高==