当前位置: 首页 > news >正文 网站设计器网站备案信息查询申请表 news 2025/10/31 15:01:39 网站设计器,网站备案信息查询申请表,做展示网站,中信建设有限责任公司龙芳双向链表定义 单链表结点中只有一个指向其后继的指针#xff0c;这使得单链表只能从头结点依次顺序地向后遍历。若要访问某个结点的前驱结点#xff08;插入、删除操作时#xff09;#xff0c;只能从头开始遍历#xff0c;访问后继结点的时间复杂度为 O(1) #xff0c; …双向链表定义 单链表结点中只有一个指向其后继的指针这使得单链表只能从头结点依次顺序地向后遍历。若要访问某个结点的前驱结点插入、删除操作时只能从头开始遍历访问后继结点的时间复杂度为 O(1) 访问前驱结点的时间复杂度为 O( n ) 。 为了克服单链表的删除缺点引入了双向链表双向链表结点中有两个指针 prior 和 next分别指向其前驱结点和后继结点。 双链表中结点类型的描述如下 typedef struct DNode { // 定义双链表结点类型ElemType data ; // 数据域struct DNode *prior , * next ; // 前驱和后继指针 }DNode , * DLinkList ; 双链表仅仅是在单链表结点中增加了一个指向其前驱的 prior 指针因此在双链表中执行按值查找和按位查找的操作和单链表相同。 但双链表在插入和删除操作的实现上和单链表有着较大的不同。这是因为“链”变化时也需要对 prior 指针做出修改其关键在于保证在修改的过程中不断链。此外双链表可以很方面地找到其前驱结点因此不管前插入、后插入、前删除、后阐述算法的时间复杂度均为为 O(1) 。 1双向链表的插入操作 第一步 s-next p-next ; // 将结点 *s 插入到结点 *p 之后第二步 p-next-prior s ;第三步 s-prior p ;第四步 p-next s ; 上面的代码的语句顺序不是唯一的但也不是任意的第一步和第二步必须在第四步之前否则 *p 的后继结点的指针就丢掉了导致插入失败。 2删除操作 删除双链表中结点 *p 的后继结点 *q 其指针的变化过程如下图 删除操作的代码片段如下 p-next q-next ; // 上图中的第一步 q-next-prior p ; // 上图中的第二步 free( q ) ; // 释放结点空间 循环单链表 循环单链表和单链表的区别在于表中最后一个结点指针不是 NULL 而改为指向头结点从而整个链表形成了一个环如下图所示 在循环单链表中表尾结点 *r 的 next 域指向 L 故表中没有指针域为 NULL的结点因此循环单链表的判空条件不是头结点的指针是否为空而是它是否等于头指针。 在单链表中只能从表头结点开始往后顺序遍历整个链表而循环单链表可以从表中的任一结点开始遍历整个链表。有时对单链表常做的操作是在表头和表尾进行的此时可以对循环单链表不设头指针而仅设尾指针从而使得操作效率更高。其原因是若设的是头指针对表尾进行操作需要 O( n ) 的时间复杂度而如果设的是尾指针 r r-next 即为头指针对于表头与表尾进行操作都只需要 O( 1 ) 的时间复杂度。 循环双向链表 由循环单链表的定义不难推出循环双链表不同的是在循环双链表中头结点的 prior 指针还要指向表尾结点如下图所示 在循环双链表 L 中某结点 *p 为尾结点时 p-next L ; 当循环双链表为空表时其头结点的 prior 和 next 域都等于 L 。 静态链表 静态链表是借助数组来描述线性表的链式存储结构结点也有数据域 data 和 指针域 next 与前面所讲的链表中的指针不同的是这里的指针是结点的相对地址数组下标又称为游标。和顺序表一样静态链表也要预先分配一块连续的内存空间。 静态链表和单链表的对应关系如下图 静态链表结构类型的描述如下 # define MaxSize 50 // 静态链表的最大长度typedef struct { // 静态链表结构类型的定义ElemType data ; // 存储数据元素int next ; // 下一个元素的数组下标 } SLinkList[ MaxSize ] ; 静态链表以 next -1 作为其结束的标志。静态链表的插入、删除操作与动态链表相同 只需要修改指针而不需要移动元素。总体来说静态链表没有单链表使用起来方便但是在一些不支持指针的高级语言如 Basic中 这又是一种非常巧妙的设计方法。 顺序表和静态链表的物理结构即存储结构是相同的在计算机内存中以数组的形式实现是用一组地址连续的存储单元依次存储数据元素的线性结构但两者的数据结构逻辑结构是不同的。 静态链表不是顺序结构这里的结构指的是逻辑结构在逻辑结构层面静态链表是链式结构。在物理层面都采用顺序形式保存数据因此物理结构、存储结构与线性表的顺序存储相同。 顺序表和链表的比较数组与链表 1存取方式 顺序表可以顺序存取也可以随机存取链表只能从表头顺序存取元素。 2逻辑结构和物理结构 采用顺序存储时逻辑上相邻的元素其对应的物理存储位置也相邻。 而采用链式存储时逻辑上相邻的元素其物理存储位置则不一定相邻其对应的逻辑关系是通过指针链接来表示的静态链表也是链式存储方式。 注意区别存取方式和存储方式存取方式指的插入删除。 3查找、插入和删除操作 对于按值查找当顺序表在无序的情况下两者的时间复杂度均为 O( n ) ; 而当顺序表有序时可采用折半查找此时时间复杂度为O(lgN)。 对于按序号查找顺序表支持随机访问时间复杂度为 O(1)而链表不支持随机访问只能遍历链表其平均时间复杂度为O(n) 。顺序表的插入、删除操作平均需要移动半个表长的元素。链表的插入、删除操作只需要修改相关结点的指针域即可。由于链表每个结点带有指针域因而在存储空间上比顺序存储要付出较大的代价存储密度不如顺序存储。 4空间分配 顺序存储在静态存储分配情形下一旦存储空间装满就不能扩充如果再加入新元素将出现内存溢出需要预先分配足够大的存储空间。预先分配过大可能会导致顺序表后部大量闲置预先分配过小又会造成溢出。动态存储分配虽然存储空间可以扩充但需要移动大量元素导致操作效率降低而且若内存中没有更大块的连续存储空间将导致分配失败。 链式存储的结点空间只在需要的时候申请分配只要内存有空间就可以分配操作灵活、高效。 在实际中应该怎样选取存储结构 1、基于存储的考虑 对线性表的长度或存储规模难以估计时不宜采用顺序表链表不用事先估计存储规模。 2、基于运算的考虑 在顺序表中按序号访问 a[i] 的时间复杂度为O(1) 而链表中按序号访问的时间复杂度为 O(n) ,所以如果经常做的运算是按序号访问数据元素显然顺序表优于链表。 在顺序表中做插入、删除操作时平均移动表中一半的元素当数据表较长时这一点是不应忽视的在链表中做插入、删除操作时虽然也要找插入位置但是操作是比较简单的从这个角度考虑链表优于顺序表。 3、基于环境的考虑 顺序表容易实现任何高级语言中都有数组类型链表的操作是基于指针的相对来讲前者实现较为简单这也是用户考虑的一个因素。 总之两种存储结构各有长短选择哪一种由实际问题的主要因素决定。通常较稳定的线性表选择顺序存储而频繁做插入、删除操作的线性表即动态性较强宜选择链式存储。 线性表总结结束下一篇开始介绍栈和队列 文章转载自: http://www.morning.xrwsg.cn.gov.cn.xrwsg.cn http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn http://www.morning.rgpbk.cn.gov.cn.rgpbk.cn http://www.morning.yhpl.cn.gov.cn.yhpl.cn http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.clkjn.cn.gov.cn.clkjn.cn http://www.morning.trkl.cn.gov.cn.trkl.cn http://www.morning.ydwnc.cn.gov.cn.ydwnc.cn http://www.morning.fmqng.cn.gov.cn.fmqng.cn http://www.morning.mslhq.cn.gov.cn.mslhq.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.hlppp.cn.gov.cn.hlppp.cn http://www.morning.bftqc.cn.gov.cn.bftqc.cn http://www.morning.kpcxj.cn.gov.cn.kpcxj.cn http://www.morning.rnzjc.cn.gov.cn.rnzjc.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn http://www.morning.zxwqt.cn.gov.cn.zxwqt.cn http://www.morning.rrqgf.cn.gov.cn.rrqgf.cn http://www.morning.ltypx.cn.gov.cn.ltypx.cn http://www.morning.fhyhr.cn.gov.cn.fhyhr.cn http://www.morning.kdrjd.cn.gov.cn.kdrjd.cn http://www.morning.qclmz.cn.gov.cn.qclmz.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.rcjwl.cn.gov.cn.rcjwl.cn http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.nfyc.cn.gov.cn.nfyc.cn http://www.morning.yrblz.cn.gov.cn.yrblz.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.nsppc.cn.gov.cn.nsppc.cn http://www.morning.mypxm.com.gov.cn.mypxm.com http://www.morning.yrjfb.cn.gov.cn.yrjfb.cn http://www.morning.qblcm.cn.gov.cn.qblcm.cn http://www.morning.ygxf.cn.gov.cn.ygxf.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.rnnts.cn.gov.cn.rnnts.cn http://www.morning.mcjrf.cn.gov.cn.mcjrf.cn http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn http://www.morning.nzdks.cn.gov.cn.nzdks.cn http://www.morning.wgrm.cn.gov.cn.wgrm.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.tbqxh.cn.gov.cn.tbqxh.cn http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.bqpgq.cn.gov.cn.bqpgq.cn http://www.morning.qtltg.cn.gov.cn.qtltg.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.pkrb.cn.gov.cn.pkrb.cn http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn http://www.morning.tymwx.cn.gov.cn.tymwx.cn http://www.morning.zwtp.cn.gov.cn.zwtp.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.rszwc.cn.gov.cn.rszwc.cn http://www.morning.rkck.cn.gov.cn.rkck.cn http://www.morning.bfsqz.cn.gov.cn.bfsqz.cn http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.wgrl.cn.gov.cn.wgrl.cn http://www.morning.trsfm.cn.gov.cn.trsfm.cn http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn http://www.morning.mftzm.cn.gov.cn.mftzm.cn http://www.morning.mqdr.cn.gov.cn.mqdr.cn http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.tclqf.cn.gov.cn.tclqf.cn http://www.morning.nslwj.cn.gov.cn.nslwj.cn 查看全文 http://www.tj-hxxt.cn/news/265479.html 相关文章: 首饰盒东莞网站建设谈谈网站建设会有哪些问题 美橙互联网站建设进不去视频网站建设模版 免费建域名网站平坝网站建设 网站建设企业做网站网站赚 企业网站的结构以及内容.添加网站图标 关于域名和主机论坛的网站网站开发 创造收益 找工作哪个网站好招聘信息无锡网页设计制作 最简单的一个网站开发wordpress插件分享显示 做的最好的紫砂网站WordPress里h1跟p有什么 网站建设的总体目标考核指标wordpress页面右下角 企业网站建设总结报告php网站后台入口 昆明网站制作的方法为什么推荐企业做网站 广州企业网站模板购买iis建立网站 dw如何建立网站建设网站模版 重庆网站的推广方式龙华做网站 熊掌号 文山知名网站建设公司推广下载app拿佣金 网站建设心得体会云南建网站的公司 西安建网站价格网站策划专员招聘 做网站 英语免费制作开业宣传视频 手机网站设计标准ps加dw做网站视频 创维网站关键字优化泗阳网站建设 重庆一般做一个网站需要多少钱2018网站开发最流行的语言 学校设计网站方案前端工作一年工资多少正常 个人博客网站设计萧山建设信用网 建设厅企业锁在哪个网站登录长汀网站建设 淮南电商网站建设费用鲜花网站开发毕业设计 娄底网站建设的公司电子商务网站建设期末考试 外贸做零售的网站连云港吧 做网站要哪些人员湛江市律师网站建设品牌 做橱窗设计的网站柳州市住房建设保障网