2010年高考理综试题和答案(全国卷2).ppt

2010年高考理综试题和答案(全国卷2).ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010年高考理综试题和答案(全国卷2)

2.3 线性表的链式表示和实现; 链表是通过每个结点的指针域将线性表的n个结点按其逻辑次序链接在一起的。 每一个结点只包含一个指针域的链表,称为单链表或线性链表。 为操作方便,总是在链表的第一个结点之前附设一个头结点(头指针)head指向第一个结点。头结点的数据域可以不存储任何信息(或链表长度等信息)。; 2.3.1 线性链表;C语言中用结构指针来描述(线性表的单链表存储结构) typedef struct LNode { ElemType data; /*数据域,保存结点的值 */ struct Lnode *next; /*指针域*/ }LNode,*LinkList; /*结点的类型 */;常见的指针操作;⑤ q-next=p-next ;;2.3.2 单链表的基本操作;2.3.2 单链表的基本操作;2.3.2 单链表的基本操作;2.3.2 单链表的基本操作;算法描述(算法2.10) status LinkListDelete_ L(LinkList L, int i, ElemType e) //在带头结点的单链表L中删除第i个元素,并由e返回其值 { p=L; j=0; while ( p-next ji-1) { p=p–next; ++j; } if (!(p-next)||ji-1) return error; q=p–next; p–next =q–next; free(q); return ok; };2.3.2 单链表的基本操作;单链表的合并 设有两个有序的单链表,它们的头指针分别是La 、 Lb,将它们合并为以Lc为头指针的有序链表。合并前的示意图如图2-4所示。;合并了值为-7,-2的结点后示意图如图2-5所示。;算法描述(算法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头结点 };2.3.3 循环链表; 有时,若在循环链表中设立尾指针而不设头指针,可使某些操作简化。;2.3.4 双向链表;1 双向链表的结点及其类型定义 双向链表的结点的类型定义如下。其结点形式如图2-7所示,带头结点的双向链表的形式如图2-8所示。 typedef struct Dulnode { ElemType data ; struct Dulnode *prior , *next ; }DulNode,*DulinkList ;;2.3.4 双向链表; 双向链表结构具有对称性,设p指向双向链表中的某一结点,则其对称性可用下式描述: p-prior-next=p=p-next-prior ; 结点p的存储位置存放在其直接前趋结点p-prior的直接后继指针域中,同时也存放在其直接后继结点p-next的直接前趋指针域中。 2 双向链表的基本操作 (1) 双向链表的插入 将值为e的结点插入双向链表中。插入前后链表的变化如图2-9所示。;算法2.18 status ListInsert_Dul(DuLinkList L , int i , ElemType e) { if(!(p=GetElemP_Dul(L , i))) return error; if (!(s=(DuLinkList)malloc(sizeof(DuLNode)))) return error; s-data=e; s-prior=p-prior; p-prior-next=s; s-next=p; p-pror=s; return ok; }; (2) 双

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档