当前位置: 首页 > news >正文

美食网站开发环境移动宽带

美食网站开发环境,移动宽带,阿里云官网入口,做好的网站如何上线目录 1.随机链表的复制 1.2题目描述 1.3题目分析 1.4解题#xff1a; 2.顺序表和链表对比 2.1cpu高速缓存利用率 3.结语 1.随机链表的复制 一个长度为 n 的链表#xff0c;每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点。 1.2题目描… 目录 1.随机链表的复制 1.2题目描述  1.3题目分析 1.4解题 2.顺序表和链表对比 2.1cpu高速缓存利用率 3.结语 1.随机链表的复制 一个长度为 n 的链表每个节点包含一个额外增加的随机指针 random  该指针可以指向链表中的任何节点或空节点。  1.2题目描述  构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如如果原链表中有 X 和 Y 两个节点其中 X.random -- Y 。那么在复制链表中对应的两个节点 x 和 y 同样有 x.random -- y 。 返回复制链表的头节点。 用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示 val一个表示 Node.val 的整数。random_index随机指针指向的节点索引范围从 0 到 n-1如果不指向任何节点则为  null 。 你的代码 只 接受原链表的头节点 head 作为传入参数。 1.3题目分析 首先链表的拷贝如果是普通链表的话使用遍历尾插即可。 深度拷贝就是要链表结构也一样 但是由于随机指针的存在。我们没办法知道或者就是说我们拷贝的节点的随机指针该指向那个位置。那么就有一种简单粗暴的方法 遍历链表然后匹配随机指针。 那么巧妙的一种办法就是将复制的节点插到被复制节点的后面这种方法巧妙。时间复杂度为O(N).空间复杂度也为O(1). while(cur)//循环申请插入{//每次都申请节点struct Node* copy ( struct Node*)malloc(sizeof( struct Node));//尾插cur-val copy-val;cur -next copy;copy-next next;cur next;//往后走一步next cur-next;}  那么对于随机指针的连接 我们发现我们原链表的节点的随机指针指向的节点的next刚好就是我们复制链表节点的随机指针要指向的节点所以 //还要使用cur遍历cur head;struct Node* copy cue-next;while(cur){if(cur-random NULL){copy-random NULL;}else{copy-random cur-random-next;}cur copy-next;copy cur-next;} 然后我们将复制的节点从原链表取下来尾插成新的链表复原原链表就OK了 1.4解题 struct Node* copyRandomList(struct Node* head) {//1.首先先将复制的节点尾插到各个节点的后面assert(head);//断言不能传入一个空链表struct Node* cur head;struct Node* next cur-next;while(cur)//循环申请插入{//每次都申请节点struct Node* copy ( struct Node*)malloc(sizeof( struct Node));//尾插cur-val copy-val;cur -next copy;copy-next next;cur next;//往后走一步next cur-next;}//还要使用cur遍历cur head;struct Node* copy cur-next;while(cur){if(cur-random NULL){copy-random NULL;}else{copy-random cur-random-next;}cur copy-next;copy cur-next;}cur head;struct Node* copyhead NULL;//新链表的头结点struct Node* copytail NULL;//定义一个尾结点方便尾插//还是遍历解除复原while(cur){copy cur-next;next copy-next;//将cope结点开始尾插if(copytail NULL)//此时新链表一个元素都没有{copyhead copytail copy;}else{copytail-next copy;copytail copytail-next;}cur -next next;cur next;}return copyhead;} 2.顺序表和链表对比 不同点                 顺序表                                                                   链表 存储空间上    物理上一定连续                                           逻辑上连续但物理上不一定 连续 随机访问         支持O(1)                                                            不支持O(N)  任意位置插入或者删除元素可能需要搬移元素,效率低 O(N)     只需修改指针指向  插入          动态顺序表空间不够时需要 扩容                                没有容量的概念 应用场景       元素高效存储频繁访问                                    任意位置插入和删除频繁  缓存利用率                    高                                                                  低 2.1cpu高速缓存利用率 硬件上的存储分层如下图 3.结语 链表和顺序表的知识到这里基本就告一段落那么大家可以从知识到解题详细回顾一下。 可以结合图解多看一下代码结合理解。以上就是本期的所有内容知识含量蛮多大家可以配合解释和原码运行理解。创作不易大家如果觉得还可以的话欢迎大家三连有问题的地方欢迎大家指正一起交流学习一起成长我是Nicn正在c方向前行的奋斗者数据结构内容持续更新中感谢大家的关注与喜欢。
http://www.zqtcl.cn/news/319308/

相关文章:

  • 怀化建设网站wordpress静态化插件
  • 网站上的中英文切换是怎么做的大连网站制作优选ls15227
  • 网站开发工作安排广告设计公司有哪些
  • 无人机公司网站建设用什么软件做网站最简单
  • 企业微信app下载安装电脑版淄博网站优化价格
  • 做一个电影网站需要多少钱在线代理服务器网站
  • 怎样制作微信网站办网络宽带多少钱
  • ios开发者账号有什么用嘉兴网站关键词优化
  • 怎样在外贸网站做业务简付后wordpress
  • html网页制作源代码成品长沙 网站优化
  • 长沙做网站哪里好百度招聘 网站开发
  • 创建网站服务器银川建设厅网站
  • 海口建设局网站代运营网站建设
  • 网站建设环境搭建心得体会微信开发者模式
  • 网站点击率多少正常落地页网站
  • 做淘宝店铺有哪些好的网站东莞网站制作建设收费
  • Wordpress 实名认证太原网站搜索优化
  • 大良网站建设dwxw网站可以自己做
  • 自己怎么建网站佛山哪家网站建设比较好
  • 长沙短视频制作公司广州网站优化注意事项
  • 北京西城网站建设公司蓬莱做网站价格
  • 网站镜像做排名网站托管工作室
  • 江苏省建设协会网站wordpress小说采集
  • 网站运行费用预算计算机学了出来干嘛
  • 什么网站上公司的评价最客观青州网站优化
  • 网站开发下载那个kk网龙岩
  • 网站页面统计代码是什么意思国外网站模板欣赏
  • 徐州社交网站传奇做网站空间
  • 网站服务器租赁怎样用ps做网站的效果图
  • 温州网站建设制作苏州做网站费用