初中信息竞赛数据结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三种基本类型(逻辑) 线性结构 树型结构 图状结构
线性 树
图
数据元素存储关系----“存储结构”
二种基本类型 顺序结构 链状结构
线性表(一)
逻辑关系:N个数据元素的有限序列 存储关系:顺序存储结构、链式存储结构
1
12
2
13
3
15
4
22
5
34
6
38
7
43
8
20
线性表(二)
6 7
树(生活模型,几个结点,三个” 一”)
根、叶子、中间结点、子树(关系) 结点的度:结点拥有的子树数(树的度) 层次 结点的层次、树的深度。 森林,有序树、无序树 A 1 树的表示:画树,括号 B C D 2 树的存储:表 3 E F G 二叉树
查字典——线性关系
家庭成员关系问题——树 城市道路问题——图
数据结构(data structure)
简单的解释:分两层意思, 一是要处理的数据有哪些, 二是这些数据之间的关系是如何的。
数据间的关系有逻辑关系、存储关系, 对于初中学生通常的数据结构讨论的是逻 辑关系。
数据元素逻辑关系----“逻辑结构”
题目描述:已知N*(N+1) / 2个数据,按行的顺 序存入数组b[1],b[2],…中。其中第一个下标表示 行,第二个下标表示列。若aij (i>=j ,j=1,2,…,,n) 存于b[k]中,问:k,i,j之间的关系如何表示?给定 k值,写出能决定相应i,j的算法。
a11 a21 a31 … … an1 a22 a32 … … an2 a33 … … an3 … … an4 … … … … … … ann
答案
①
K=i*(i-1)/2+j
② Read(k); For i:=1 to k do for j:=1 to i do if k=(trunc(I*(I-1)/2)+j) then writeln(k,’对应的i,j为:‘,i,’,’,j)
栈(strack)
栈底 a1 a2 a3 。。。。
链式存储
13 15 22 ^
head
12
L
20 ^
一个节点 三个信息
头指针为31(赵地址)
存储地址 1 7 13 19 25 31 37 43
数据域 李 钱 孙 王 伍 赵 张 周
指针域 43 13 1 Null 37 7 19 25
头 赵7 钱 13 孙1 李 43 周 25 伍 37 张 19 王
特殊的线性表 栈顶(top)—— 栈底(buttom)—— 操作特点:后进先出(Last In First Out) 入栈 空栈
栈顶 an-1 an 出栈
栈 (考题分析)
(1998) 栈S初始状态为空,现有5个元素组成 的序列{1,2,3,4,5},对该序列在栈S上 一次进行如下操作(从序列中的1开始,出栈 后不再进栈):进栈、进栈、进栈、出栈、进 栈、出栈、进栈。问出栈的元素序列是 ______
(A) {5,4,3,2,1} (B) {2,1} (C) {2,3} (D) {3,4}
3、1、3:栈的应用举例---汉诺
塔
a b c
最下面的先移动目标盘,最上面的最后移到 目标盘。后进先出。
Hanoi 的递归实现
Procedure hanoi(n:integer;a,b,c:char); begin hanoi(n-1,a,c,b); writeln(a,’--’,c);/tot:=tot+1; hanoi(n-1,b,a,c); end;
历年初赛试题 2007noip-16.地面上有标号为A、B、C的三根柱,在A柱上 放有10个直径相同中间有孔的圆盘,从上到下依次编号为1, 2,3……,将A柱上的部分盘子经过B柱移入C柱,也可以在 B柱上暂存。如果B柱上的操作记录为“进、进、出、进、 进、出、出、进、进、出、进、出、出”。那么,在c柱上, 从下到上的编号为( )。 A.2 4 3 6 5 7 B.2 4 1 2 5 7 c.2 4 3 1 7 6 D.2 4 3 675 2005noip-20.设栈S的初始状态为空,元素a,b,c,d,e,f,g依次 入栈,以下出栈序列不可能出现的是()。 A.a,b,c,e,d,f,g B.b,c,a,f,e,g,d C.a,e,d,c,b,f,g D.d,c,f,e,b,a,g E.g,e,f,d,c,b,a 2004noip-14. 某个车站呈狭长形,宽度只能容下一台车, 并且只有一个出入口。已知某时刻该车站状态为空,从这一 时刻开始的出入记录为:“进,出,进,进,出,进,进, 进,出,出,进,出”。假设车辆入站的顺序为1,2, 3,……,则车辆出站的顺序为( )。 A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7 C. 1, 3, 5, 4, 6 D. 1, 3, 5, 6, 7 E. 1, 3, 6, 5, 7
队列(queue)
特殊线性表:允许插入的一端称为队尾 (rear),允许删除的一端称为队头(front)。 先进先出(进出的序列一致)
入队列
出队列
a1 a2 a3 a4 …… an
循环队列
循环队列
F
R 5 1 8
一.判断是否是空: if front =rear then empty; 二.判断队列为满: (rear+1) mod m =front 三、获取队头元素: 若为空输出提示; 若不空则x:=q[front];
null
二维数组与线性表
二维数组的一个形象比喻—— 多个纵队形成的方块 m * n
a11 a21 a31
a12 a22 a32
a13 a23 a33
a14 a24 a34
…… a1n …… a2n …… a3n
…… …… …… …… …… ……
am1
am2
am3
am4
…… amn
数组地址计算问题
数据结构与简单算法
江山二中祝小林老师
用计算机解决问题一般步骤:
具体问题
数学模型 算法
编程、调试
得到答案
数据结构
ຫໍສະໝຸດ Baidu
什么是数据结构 线性表 二维数组与线性表 栈 队列 树 图
什么是数据结构?
计算机处理的对象是什么? 数据间的关系表示成数学模型有几种?
三种经典的数学模型
线性 树
图
数据元素存储关系----“存储结构”
二种基本类型 顺序结构 链状结构
线性表(一)
逻辑关系:N个数据元素的有限序列 存储关系:顺序存储结构、链式存储结构
1
12
2
13
3
15
4
22
5
34
6
38
7
43
8
20
线性表(二)
6 7
树(生活模型,几个结点,三个” 一”)
根、叶子、中间结点、子树(关系) 结点的度:结点拥有的子树数(树的度) 层次 结点的层次、树的深度。 森林,有序树、无序树 A 1 树的表示:画树,括号 B C D 2 树的存储:表 3 E F G 二叉树
查字典——线性关系
家庭成员关系问题——树 城市道路问题——图
数据结构(data structure)
简单的解释:分两层意思, 一是要处理的数据有哪些, 二是这些数据之间的关系是如何的。
数据间的关系有逻辑关系、存储关系, 对于初中学生通常的数据结构讨论的是逻 辑关系。
数据元素逻辑关系----“逻辑结构”
题目描述:已知N*(N+1) / 2个数据,按行的顺 序存入数组b[1],b[2],…中。其中第一个下标表示 行,第二个下标表示列。若aij (i>=j ,j=1,2,…,,n) 存于b[k]中,问:k,i,j之间的关系如何表示?给定 k值,写出能决定相应i,j的算法。
a11 a21 a31 … … an1 a22 a32 … … an2 a33 … … an3 … … an4 … … … … … … ann
答案
①
K=i*(i-1)/2+j
② Read(k); For i:=1 to k do for j:=1 to i do if k=(trunc(I*(I-1)/2)+j) then writeln(k,’对应的i,j为:‘,i,’,’,j)
栈(strack)
栈底 a1 a2 a3 。。。。
链式存储
13 15 22 ^
head
12
L
20 ^
一个节点 三个信息
头指针为31(赵地址)
存储地址 1 7 13 19 25 31 37 43
数据域 李 钱 孙 王 伍 赵 张 周
指针域 43 13 1 Null 37 7 19 25
头 赵7 钱 13 孙1 李 43 周 25 伍 37 张 19 王
特殊的线性表 栈顶(top)—— 栈底(buttom)—— 操作特点:后进先出(Last In First Out) 入栈 空栈
栈顶 an-1 an 出栈
栈 (考题分析)
(1998) 栈S初始状态为空,现有5个元素组成 的序列{1,2,3,4,5},对该序列在栈S上 一次进行如下操作(从序列中的1开始,出栈 后不再进栈):进栈、进栈、进栈、出栈、进 栈、出栈、进栈。问出栈的元素序列是 ______
(A) {5,4,3,2,1} (B) {2,1} (C) {2,3} (D) {3,4}
3、1、3:栈的应用举例---汉诺
塔
a b c
最下面的先移动目标盘,最上面的最后移到 目标盘。后进先出。
Hanoi 的递归实现
Procedure hanoi(n:integer;a,b,c:char); begin hanoi(n-1,a,c,b); writeln(a,’--’,c);/tot:=tot+1; hanoi(n-1,b,a,c); end;
历年初赛试题 2007noip-16.地面上有标号为A、B、C的三根柱,在A柱上 放有10个直径相同中间有孔的圆盘,从上到下依次编号为1, 2,3……,将A柱上的部分盘子经过B柱移入C柱,也可以在 B柱上暂存。如果B柱上的操作记录为“进、进、出、进、 进、出、出、进、进、出、进、出、出”。那么,在c柱上, 从下到上的编号为( )。 A.2 4 3 6 5 7 B.2 4 1 2 5 7 c.2 4 3 1 7 6 D.2 4 3 675 2005noip-20.设栈S的初始状态为空,元素a,b,c,d,e,f,g依次 入栈,以下出栈序列不可能出现的是()。 A.a,b,c,e,d,f,g B.b,c,a,f,e,g,d C.a,e,d,c,b,f,g D.d,c,f,e,b,a,g E.g,e,f,d,c,b,a 2004noip-14. 某个车站呈狭长形,宽度只能容下一台车, 并且只有一个出入口。已知某时刻该车站状态为空,从这一 时刻开始的出入记录为:“进,出,进,进,出,进,进, 进,出,出,进,出”。假设车辆入站的顺序为1,2, 3,……,则车辆出站的顺序为( )。 A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7 C. 1, 3, 5, 4, 6 D. 1, 3, 5, 6, 7 E. 1, 3, 6, 5, 7
队列(queue)
特殊线性表:允许插入的一端称为队尾 (rear),允许删除的一端称为队头(front)。 先进先出(进出的序列一致)
入队列
出队列
a1 a2 a3 a4 …… an
循环队列
循环队列
F
R 5 1 8
一.判断是否是空: if front =rear then empty; 二.判断队列为满: (rear+1) mod m =front 三、获取队头元素: 若为空输出提示; 若不空则x:=q[front];
null
二维数组与线性表
二维数组的一个形象比喻—— 多个纵队形成的方块 m * n
a11 a21 a31
a12 a22 a32
a13 a23 a33
a14 a24 a34
…… a1n …… a2n …… a3n
…… …… …… …… …… ……
am1
am2
am3
am4
…… amn
数组地址计算问题
数据结构与简单算法
江山二中祝小林老师
用计算机解决问题一般步骤:
具体问题
数学模型 算法
编程、调试
得到答案
数据结构
ຫໍສະໝຸດ Baidu
什么是数据结构 线性表 二维数组与线性表 栈 队列 树 图
什么是数据结构?
计算机处理的对象是什么? 数据间的关系表示成数学模型有几种?
三种经典的数学模型