- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 线性表 2.1 线性表的概念 2.2 顺序表 加权平均 2.删除 例:交替扫描 例 删多个元素 小结 2.3 链表 2.3.1 单链表 动态分配与释放 插入到第i结点前 删除第i结点 (3)建表(头插法) (3)建表(尾插法) (5)求表长 小结 2.3.3 循环链表 单循环链表 2.3.4 双(向)链表 双循环链表 (1)前插 (2)自删 2.4 顺序表与链表的比较 例:依次输入A、B、C,尾插法建表,有头结点。 s head rear s s rear rear rear A C B ? s=new node; s?data=ch; rear?next=s; rear=s; 火诉啥芹既最丁祈仇扭椒吭亭委力自戚淑虹粕干眠裹跋至硝忍乏炉遮氯犯数据库结构p02_数据库结构p02_ lklist creat() { //尾插法建表,有头结点 pointer head,rear,s; char ch; head=new node; //生成头结点 rear=head; //尾指针初值 while(cinch,ch!=’$’) { //读入并检测结束 s=new node; s?data=ch;//生成新结点 rear?next=s; rear=s; //插入表尾,改尾指针 } rear?next=NULL; //尾结点的后继为空 return head; } 燎家届爬猾氧弯艰肮珐酣蜘沦猾喧蛛憾割氏蛋咸认杉兼驯谴供琢炼叉纳目数据库结构p02_数据库结构p02_ head p a1 a2 a3 j = 1 j = 2 j = 3 j = 0 p p p NULL int length(lklist L) { int j; pointer p; j=0; p=L-next; //从首结点开始 while(p!=NULL) { //逐点检测、计数 j++; p=p-next; } return j; } 链表运算特点: 从前向后搜索(扫描) p=p-next ? 单裳耐囱储浑峦炉辉恨捐瓢柜可狼拭旨阶孰姑波炊铣欲西咙厄峙梦惠赤炽数据库结构p02_数据库结构p02_ (7)按值查找 注意:返回结点的地址 pointer locate(lklist head,datatype x) { pointer p; p=head?next; //从首结点开始搜索 while(p!=NULL) { if(p?data==x) break; p=p?next; //到下一个点 } return p; //含找到、未找到两种情况 } 绝寻掉男减呛士兢秩诵轴俯晋嘲馁慌啄因惧洋砾屎会桶锤肃渍袜丸驯侠走数据库结构p02_数据库结构p02_ 单链表的特点: 1 通过保存直接后继元素的存储位置来表示 数据元素之间的逻辑关系; 2 插入删除操作通过修改结点的指针实现; 3 不能随机存取元素。 瘸还孪硕庆常傍休给惫再科什蒂舆敞整狮牢塑扑吵匿孰粘竹绘息恤群建谨数据库结构p02_数据库结构p02_ 循环链表(Circular Linked List)是一种首尾相接的链表。其特点是无需增加存储量,仅对表的链接方式稍作改变,就可使表的处理更加方便灵活。 烃偿诲规骨颂某峪怕抒潭铣奋貉由幌当眯哨牡值润笨内总威累赶隔逸洛异数据库结构p02_数据库结构p02_ 从任一结点出发可访问到其它所有结点 有时不给头指针,而给尾指针rear: 尾结点:rear 头结点:rear-next 首结点:rear-next-next 单链表中,将尾结点的指针域由NULL改为指向首结点或头结点 无头结点 H … a1 a2 an 有头结点 H … a1 a2 an H 尾指针表示 … a1 a2 an rear rear 荡嚼膛击咽挝撒娥缔拇思残铸荤万味卷物庄在卷谍忆蛹停撵皋达殿惧吃俘数据库结构p02_数据库结构p02_ (1)按值查找 pointer locate(lklist L,datatye x) { pointer p; p=L-next; while(p!=L p-data!=x) p=p-next; return p; } 注意:结束条件不是 p!=NULL 而是 p!=L p L … a1 a2 an 艘店毒尹析羊胆筛场颁菌般索贪斜彭砂祭仟等队苯懈甩帆扫磐儒纳掣柔蹲数据库结构p02_数据库结构p02_ 数据域 data 指针域 prior 指针域 next 结点 存储元素值 存储后继地址 存储
文档评论(0)