2010年高考理综试题及答案(全国卷2)
更新时间:2023-07-28 20:35:01 阅读量: 实用文档 文档下载
- 2010世界杯推荐度:
- 相关推荐
2010年高考理综试题及答案(全国卷2)
2.3 线性表的链式表示和实现2.3.1 线性链表链式存储 :用一组任意的存储单元存储线性表中的数据元 素。用这种方法存储的线性表简称线性链表。 存储链表中数据元素的一组任意的存储单元可以是连续的, 也可以是不连续的,甚至是零散分布在内存中的任意位置上的。 链表中数据元素的逻辑顺序和物理顺序不一定相同。 为了表示数据元素ai和ai+1之间的逻辑关系,对数据元素ai 来说,除了存储其本身的信息之外,还需存储一个指示其直接后 继的信息(直接后继的存储位置)。这两部分信息组成数据元素 ai的存储映像,称为结点(node)。
2010年高考理综试题及答案(全国卷2)
2.3.1
线性链表
结点包括两个域:数据域和指针域。n个结点连接成 一个链表,即为线性表的链式存储结构。data next
data :数据域,存放数据元素信息。next :指针域,存放 结点的直接后继的地址,指针域中存储的信息称为指针或链。
图2-2 链表结点结构
链表是通过每个结点的指针域将线性表的n个结点按其逻辑次序链接在一 起的。 每一个结点只包含一个指针域的链表,称为单链表或线性链表。 为操作方便,总是在链表的第一个结点之前附设一个头结点(头指 针)head指向第一个结点。头结点的数据域可以不存储任何信息(或链表长度 等信息)。
2010年高考理综试题及答案(全国卷2)
2.3.1 线性链表单链表的存取必须从头指针开始,头指针指示链表中第一个结点。
例1、线性表L=(ZHAO,QIAN,SUN,LI,zhou,wu,zheng,wang)存储地址 头指针H 31 1 7 13 19 25 31 37 43 QIAN 数据域 LI QIAN SUN WANG WU ZHAO ZHENG ZHOU SUNZHENG
指针域 43 13 1 NULL 37 7 19 25 LIWANG
H
ZHAO
ZHOU
WU
2010年高考理综试题及答案(全国卷2)
2.3.1
线性链表
C语言中用结构指针来描述(线性表的单链表存储结构) typedef struct LNode { ElemType data; }LNode,*LinkList;L P a1
/*数据域,保存结点的值 */ /*指针域*/ /*结点的类型 */
struct Lnode *next;
在单链表中,每个元素的存储位置都包含在其直接前驱结点的信息之中。 P ->next指向第2个元素,p ->data=a1,p ->next ->data=a2 a2 带头结点的单链表 L 带头结点的单链表 空表 … 非空表 单链表是非随机存取的存储结构 an
2010年高考理综试题及答案(全国卷2)
常见的指针操作p q … … p a 操作后 p b … … a q b p … … a 操作后 q b c 操作前 … … b … …
① q=p ;
…
a 操作前 p
…
② q=p->next ;
…
a
操作前 p
操作后
③ p=p->next ;
…
a
b
操作前
④ q->next=p ;(a)… p
q a
…p
a c
b
…
…
操作后
2010年高考理综试题及答案(全国卷2)
q … a q … a b b … 操作前 …
p x p x y … y …
(b)
⑤ q->next=p->next ; (a)…
操作后q a x b y … … p … 操作前 b … 操作后 x p x y … y … q a x y 操作后 …
b…
…
p
p
q 操作前… a q … a b
(b)
2010年高考理综试题及答案(全国卷2)
2.3.2 单链表的基本操作取单链表中的第i个元素: 对于单链表,不能象顺序表中那
样直接按序号i访问 结点,而只能从链表的头结点出发,沿链域next逐个 结点往下搜索,直到搜索到第i个结点为止。因此,链 表是非随机存取结构。 设单链表的长度为n,要查找表中第i个结点,仅 当1≦i≦n时,i的值是合法的。
2010年高考理综试题及答案(全国卷2)
2.3.2 单链表的基本操作status GetElem_L(LinkList L , int i, ElemType &e) //L为带头结点的单链表的头指针 //当第i个元素存在时,其值赋给e,并返回OK,否则返回ERROR { p=L->next; j=1; // 使p指向第一个结点 while (p && j<i) { p=p–>next; ++j; } if (!p||j>i) return error; e=p->data; // p为NULL 表示i太大; j>i表示i为0 } 算法2.8
移动指针p的频度: i<1时:0次; i∈[1,n]:i-1次;i>n:n次。 ∴时间复杂度: O(n)。
2010年高考理综试题及答案(全国卷2)
2.3.2 单链表的基本操作单链表的插入 插入运算是将值为e的新结点插入到表的第i个结点的位置上,即插入 到ai-1与ai之间。因此,必须首先找到ai-1所在的结点p,然后生成一个数据域为 e的新结点q,q结点作为p的直接后继结点。 算法描述(算法2.9) status ListInsert_L(LinkList &L,int i,ElemType e) // 在带头结点的单链表L的第i个位置插入值为e的结点 { p=L; j=0; while ( p&& j<i-1) { p=p–>next; ++j; }
if (!p||j>i-1) return ERROR; s=(LinkList)malloc(sizeof(Lnode)); s->data=e; s->next=p->next; p->next=s; return ok; } }链表的长度为n,合法的插入位置是1≦i≦n。算法的时间主要耗费 移动指针p上,故时间复杂度亦为O(n)
2010年高考理综试题及答案(全国卷2)
2.3.2 单链表的基本操作单链表的删除删除单链表中的第i个结点。 为了删除第i个结点ai,必须找到结点的存储地址。该存储地址是在其直接前 趋结点ai-1的next域中,因此,必须首先找到ai-1的存储位置p,然后令p–>next指 向ai的直接后继结点,即把ai从链上摘下。最后释放结点ai的空间。 设单链表长度为n,则删去第i个结点仅当1≦i≦n时是合法的。则当i=n+1时, 虽然被删结点不存在,但其前趋结点却存在,是终端结点。故判断条件之一是 p–>next!=NULL。显然此算法的时间复杂度也是O(n)。
2010年高考理综试题及答案(全国卷2)
算法描述(算法2.10)status LinkListDelete_ L(LinkList &L, int i, ElemType &e)//在带头结点的单链表L中删除第i个元素,并由e返回其值
{ p=L; j=0; while ( p->next&& j<i-1) { p=p–>next; ++j; } if (!(p->next)||j>i-1) return error; q=p–>next; p–>next =q–>next; free(q); return ok;
}单链表是一种动态结构,建立线性表的链式存储结构的过程是一个动态生成 链表的过程
2010年高考理综试题及答案(全国卷2)
2.3.2 单链表的基本操作逆向建立单链表(算法2.11)Viod CreateList_L(LinkList &L , int n) //逆位序输入n个元素的值,建立带表头结点的单链线性表L。 { L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; for( i=n; i>0; --i) { p=(LinkList)malloc(sizeof(LNode)); scanf(&p->data); p->next=L->nxet; L->next=p; } } 时间复杂度为O(n)
2010年高考理综试题及答案(全国卷2)
单链表的合并设有两个有序的单链表,它们的头指针分别是La 、 Lb,将它们合并为以Lc为头指针的有序链表。合并前的 示意图如图2-4所示。pa Lc pc La -7 Lb -2 4 9 …… 15
3
12
……
23
pb
图2-4 两个有序的单链表La ,Lb的初始状态pa ,pb分别是待考察的两个链表的当前结点,pc指向Lc表中最后一个结点。
2010年高考理综试题及答案(全国卷2)
合并了值为-7,-2的结点后示意图如图2-5所示。pa La Lc Lb -2 pc 4 pb 9 …… -7 3 12 ……
23
15
图2-5
合并了值为-7 ,-2的结点后的状态
算法说明算法中pa ,pb分别是待考察的两个链表的当前结 点,pc指向Lc表中最后一个结点。
2010年高考理综试题及答案(全国卷2)
算法描述(算法2.12)Void MergeList_L(LinkList &La, LinkList &Lb, LinkList &Lc) //已知单链线性表La和Lb的元素按非递减排列 //归并La和Lb得到新的单链线性表Lc也按值非递减排列
{pa=La->next ; pb=Lb->next ; Lc=pc=La; while (pa && pb)
{ if (pa->data<=pb->data){ pc->next=pa ; pc=pa ; pa=pa->next ; } else { pc->next=pb ; pc=pb ; pb=pb->next ; } } pc->next=pa?pa:pb; free(Lb); //释放Lb头结点
}
2010年高考理综试题及答案(全国卷2)
2.3.3 循环链表循环链表(Circular Linked List):是一种头尾相接的链表。其特点是最后一个结点的指针域指向链表的头结 点,整个链表的指针域链接成一个环。 从循环链表的任意一个结点出发都可以找到链表中 的其它结点,使得表处理更加方便灵活。 图2-6是带头结点的单循环链表的示意图。HH …… an
a1
a2
空表
非空表
图2-6 单循环链表示意图
2010年高考理综试题及答案(全国卷2)
循环链表的操作对于单循环链表,除链表的合并外,其它的操作和 单线性链表基本上一致,仅仅需要在单线性链表操作算 法基础上作以下简单修改: ⑴ 判断是否是空链表:head->next==head ; ⑵ 判断是否是表尾结点:p->next==head ; 有时,若在循环链表中设立尾指针而不设头指针, 可使某些操作简化。A
B
B,A
2010年高考理综试题及答案(全国卷2)
2.3.4 双向链表双向链表(Double Linked List) :指的是构成链表的每个结点中设立两个指针域:一个指向其直接前趋的指 针域prior,一个指向其直接后继的指针域next。这样形 成的链表中有两个方向不同的链,故称为双向链表。 和单链表类似,双向链表一般增加头指针也能使双 链表上的某些运算变得方便。将头结点和尾结点链接起来也能构成循环链表,并 称之为双向循环链表。 双向链表是为了克服单链表的单向性的缺陷而引入
的。
2010年高考理综试题及答案(全国卷2)
1 双向链表的结点及其类型定义双向链表的结点的类型定义如下。其结点形式如 图2-7所示,带头结点的双向链表的形式如图2-8所示。
typedef struct Dulnode { ElemType data ; struct Dulnode *prior , *next ; }DulNode,*DulinkList ;prior element nexthead
图2-7 双向链表结点形式head a1 a2 …… an
空双向链表
非空双向链表 图2-8
带头结点的双向链表形式
正在阅读:
2010年高考理综试题及答案(全国卷2)07-28
啦啦操教学设计 - 图文03-09
跨境电商,中国与东盟的又一次机遇11-03
中国联通投资分析05-16
泵站管理制度06-05
离心泵机械密封泄漏原因分析及处理06-06
信息技术会考-选择题(基础、多媒体)04-29
你在哪里呀02-14
北师大版九年级数学上册复习题05-23
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 试题
- 答案
- 高考
- 全国
- 理综
- 2010
- 重庆大学161批次大学英语(3) ( 第2次 )答案
- 行政领导学答案123
- 如何才能走向成功
- 四年级校本课程教学计划
- 九年级古文知识点汇总
- 高考英语满分作文(1)
- 雷诺汽车零配件中英图片对照表
- 古诗词鉴赏的命题趋势与备考策略
- 初中几何辅助线大全
- 【国家教师资格证】20分钟备课教案
- 各种输送方式及计算公式
- 台州学院“三位一体”招生咨询常见问题
- 科技馆活动进校园”实施工作方案
- SS4改电力机车电气线路分析
- 绞股蓝处方制剂的工艺及质量标准研究概况
- 锁阳脂肪酸组成成分的GC_MS分析
- 东西方文化的对比comparison and contrast between eastern and western culture
- 已看员工满意度文献综述
- 阴历算法CnCalendar
- 雅思词汇中容易记混的单词