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

光纤做网站 移动不能访问电信微信管理助手

光纤做网站 移动不能访问电信,微信管理助手,wordpress truepixel,学编程哪家机构最好1.双向链表的结构#xff08;双向不带头不循环链表#xff09; 需要注意的一点就是#xff0c;在jdk中的链表就是双向链表 一个节点有三个域 val#xff08;数值域#xff09; next#xff08;地址域#xff09; prev#xff08;前驱记录前一个节点的地址#xff09…1.双向链表的结构双向不带头不循环链表 需要注意的一点就是在jdk中的链表就是双向链表 一个节点有三个域 val数值域 next地址域 prev前驱记录前一个节点的地址 在双向链表中我们还定义了一个last用来标记最后一个节点 2.双向链表的具体实现 1.定义一个MyLinkedLIst的类它要实现的所有内容是和单向链表中接口的方法是一样的 双向链表的实现的方法和单项链表的方法是一样的所以接入的接口也是一样的 在写这些方法之前要先定义一个双向链表的基本框架其中构造方法是为了能够链表传入val的参数 2.1双向链表中display方法打印链表方法的实现  双向链表的打印和单项链表是一样的因为都是头节点cur从头走到尾。 2.2双向链表size方法打印链表长度是多少的方法的实现 也和单向链表是一样的都是头结点从头走到尾 2.3双向链表contains找寻专门的元素在链表中对的位置的方法的实现 基本框架 代码实现 2.3双向链表addFirst方法 不进行详细讲解绿色字看不动到专栏链表一中进行查看 要注意的是要是只有一个节点的化就不能这样写会发生空指针异常所以一个的时候我们只需要让头结点指向它然后last也指向node就行了。 2.4双向两步addlast方法插入一个元素到节点的最后一个 和头插法是相似的 2.5双向链表在指定位置来对要插入的数值进行插入  和单向链表不同的是双向链表可以前进和后退  所以我们只需要走到要插入的节点的位置然后修改四个指向就可以了 先连后面再连前面 分两种情况如果在头部就直接插入如果不在头部就正常进行插入如果在尾部那么就直接尾插法循环条件大家看一下没啥问题我相信大家的能力  2.6删除方法remove删除一个元素指定的 del是要删除节点的位置 其中我们要注意两种情况 要是写错的化会有空指针异常因为headA和last存的地址的值是null所以会报错 所以我们要避免这种情况 下面是详细的图解用删除中间节点的逻辑来对其进行删除 1删除头节点的思路 将headA往后面移动一个然后将headA的prev位置重置为空 也就是 headA headA.next; head.prev null  2删除中间节点的思路 3删除最后节点的思路 总体代码实现  这个代码还有一个问题隐型的问题 如果只删除一个节点那么就会让head为null发生空指针异常所以我们要防止这种情况 总体代码太长了不能图片 public void remove(int key) {ListNode cur head;while (cur ! null) {if(cur.val key) {if(cur head) {head head.next;if(head ! null) {head.prev null;}else {//只有一个节点 且是需要删除的节点last null;}}else {cur.prev.next cur.next;//删除中间节点if(cur.next ! null) {cur.next.prev cur.prev;//cur.prev.next cur.next;}else {//删除尾巴节点//cur.prev.next cur.next;last last.prev;}}return;}cur cur.next;}} 2.7删除方法removeall删除所有这个指定元素的值 这个方法和remove方法可以说是一毛一样 在remove方法中我们不是return结束这个循环了吗我们只要不结束这个循环让他继续走那么就可以继续进入循环进行删除 所以我们可以这样 这样就完成了 整体代码 public void removeAllKey(int key) {ListNode cur head;while (cur ! null) {if(cur.val key) {if(cur head) {head head.next;if(head ! null) {head.prev null;}else {//只有一个节点 且是需要删除的节点last null;}}else {cur.prev.next cur.next;//删除中间节点if(cur.next ! null) {cur.next.prev cur.prev;//cur.prev.next cur.next;}else {//删除尾巴节点//cur.prev.next cur.next;last last.prev;}}}cur cur.next;}} 2.8clear方法删除所有的元素 让头结点和last节点都为空就直接清除了 后面我会在java进阶课程中详细讲解他的清空过程 进入clear的源码 其实和我写的差不多 io流那里估计是 最后希望大家看完这链表两个数据结构的文章以后就去看源码我写的和源码其实差不多只不过源码的封装更多
http://www.zqtcl.cn/news/362025/

相关文章:

  • 怎么改版网站湖南长沙地图
  • 中卫网站推广公司如何自创app软件
  • 无棣网站建设电子商务网站设计原理书籍
  • 做t-shirt素材网站企业网站建设结论
  • 唐山公司做网站查询建筑资质的网站
  • 邯郸的网站建设网站正能量入口
  • 网站导航栏最多可以做几个宝安网站设计排名
  • 自己怎样用手机建网站网件app
  • 周口网站开发西安市建设厅网站
  • 怎么授权小说做游戏网站论坛网站开发语言
  • 烟台商城网站建设怎么样引流顾客到店方法
  • 北京做网站公司的排名python基础教程pdf
  • 网站建设为什么学flash建设工程询价网站有哪些
  • 网站内容建设机制企业管理模式有哪些
  • 中山网站建设文化价格建网站域名注册
  • 手机电影网站怎么做大连最新发布
  • 珠三角网站建设网页制作专业知识
  • 罗湖微信网站制作深圳做网站哪个公司最好
  • ps如何做ppt模板下载网站网站模板分类
  • 网站建设在线网站服务器和直播服务器一样吗
  • iapp网站做软件教程朋友圈广告投放平台
  • 优门设 网站网站代理 正规备案
  • 衡水做wap网站上海做网站吧
  • seo推广思路seo线下培训班
  • 没有备案的网站怎么做淘宝客html5开发手机网站
  • 酒店旅游团购网站建设推广普通话实践总结
  • 基本的网站开发技术路线建设网站的好处有哪些
  • 网站排行怎么做wordpress all in one seo插件
  • 河北特定网站建设推荐wordpress添加vip用户组
  • 北京商城网站建设地址asp.net网站开发 pdf