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

企业网站建设飞沐网站建设推进情况

企业网站建设飞沐,网站建设推进情况,自学程序员的步骤,青岛网络公司哪家专业LinkedList是双向链表结构可以适用于任意插入场景下的插入和删除,效率较高,时间复杂度为O(1)。 模拟实现 public class MyLinkedList {static class ListNode{private int val;//值域private ListNode prev;//前驱private ListNode next;//后继public …

LinkedList是双向链表结构可以适用于任意插入场景下的插入和删除,效率较高,时间复杂度为O(1)。

模拟实现

public class MyLinkedList {static class ListNode{private int val;//值域private ListNode prev;//前驱private ListNode next;//后继public ListNode(int val) {this.val = val;}}public ListNode head;//双向链表的头节点public ListNode last;//双向链表的尾节点
}

LinkedList常用方法

//头插法
public void addFirst(int data)//尾插法
public void addLast(int data)//任意位置插入,第一个数据节点为0号下标
public void addIndex(int index,int data)//查找是否包含关键字key是否在单链表当中
public boolean contains(int key)//删除第一次出现关键字为key的节点
public void remove(int key)//删除所有值为key的节点
public void removeAllKey(int key)//得到链表的长度
public int size()//清空链表
public void clear()

实现addFirst方法(头插法)

public void addFirst(int data){ListNode node = new ListNode(data);//如果链表为空 插入的元素就是头节点和尾节点if (head==null){head = node;last = node;}else {node.next = head;//使node的后继是现在的头节点head.prev = node;//使现在的头节点的前驱是nodehead = node;//让node成为新的头节点}
}

实现addList方法(尾插法)

public void addLast(int data){ListNode node = new ListNode(data);//和头插一样if (last==null){head = node;last = node;}else {last.next = node;//使现在尾节点的后继为nodenode.prev = last;//使node的前驱为现在的尾节点last = last.next;//让node成为尾节点}
}

实现size方法(求链表长度)

public int size(){ListNode cur = head;int count = 0;while (cur!=null){count++;cur = cur.next;}return count;
}

实现addIndex方法(在任意位置插入元素)

public void addIndex(int index,int data){//插入的位置如果为0 可以使用头插法if (index==0){addFirst(data);return;}//如果在最后一个位置插入 可以使用尾插法if (index==size()){addLast(data);return;}ListNode node = new ListNode(data);//判断要插入的下标是否合法if (index<0||index>size()){System.out.println("index 不合法"+index);return;}ListNode cur = head;//让cur走到要插入的位置while (index!=0){cur = cur.next;index--;}node.next = cur;cur.prev.next = node;node.prev = cur.prev;cur.prev = node;
}

实现contains方法(查找是否包含关键字key是否在单链表当中)

public boolean contains(int key){if (head==null){return false;}ListNode cur = head;while (cur!=null){if (cur.val==key){return true;}cur = cur.next;}return false;
}

实现remove方法(删除第一次出现关键字为key的节点)

public void remove(int key){ListNode cur = head;while (cur!=null){if (cur.val==key){//删除头节点if (cur==head){head = head.next;if (head==null){//只有一个头节点cur.prev=null;}else {last=null;}}else {if (cur.next!=null){//删除中间节点cur.prev.next=cur.next;cur.next.prev=cur.prev;}else {//删除尾节点cur.prev.next=cur.next;last=last.prev;}}return;}else {cur=cur.next;}}
}

实现removeAllkey(删除所有值为key的节点)

public void removeAllKey(int key){ListNode cur = head;while (cur!=null){if (cur.val==key){//删除头节点if (cur==head){head = head.next;if (head==null){//只有一个头节点cur.prev=null;}else {last=null;}}else {if (cur.next!=null){//删除中间节点cur.prev.next=cur.next;cur.next.prev=cur.prev;}else {//删除尾节点cur.prev.next=cur.next;last=last.prev;}}cur=cur.next;}else {cur=cur.next;}}
}

实现clear方法(清除链表)

public void clear(){ListNode cur = head;while (cur!=null){ListNode curNew = cur.next;cur.prev=null;cur.next=null;cur = curNew;}head=null;last=null;
}
http://www.dtcms.com/wzjs/548030.html

相关文章:

  • 新乡专业做网站多少钱网站开发需求分析与功能设计
  • 网站返回按钮设计网站建设后台管理便捷
  • 哪些是个人网站贵州网站seo
  • 商城网站开发报价seo网站推广优化公司
  • 铁门关网站建设怎么样做seo
  • 焦点网站设计深圳企业500强名单
  • 网站如何报备礼品定制
  • 怎么做网站设购物网站排行
  • wordpress 欲思西安seo服务公司
  • 郑州红酒网站建设网络公司官网
  • 建功能网站学校网站网站建设
  • 有什么网站做微商网站转为移动网站
  • 阿里巴巴网站建设规划电商平台推广公司
  • 网站建设创业计划书网易企业邮箱服务
  • 微信网站 手机网站大连模板建站定制
  • 西宁市建设网站公司电话西安做网站app
  • 公司网站改版方案盛世网站历史频道怎么做
  • 免费空间asp网站wordpress是瀑布流吗
  • 各类东莞微信网站建设如何把自己电脑做网站服务器
  • 升腾d9116 做网站定制系统开发平台
  • 有专业做网站的吗gre考wordpress镜像系统
  • 建设项目环保验收公示网站seo专员岗位职责
  • 专注高密网站建设开放大学门户网站建设
  • 合肥制作网站的公司简介新闻资讯专业翻译公司
  • 在线音乐网站开发数据库完全菜鸟七天学会建网站
  • 邢台市桥西住房建设局网站哈市那里网站做的好
  • 莆田网站设计wordpress搭建单机版
  • 化妆品网站开发步骤品牌推广计划书怎么写
  • 清远企业网站排名求大神帮忙做网站
  • 网站商城是用什么框架做的市场营销策划公司