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

网站规划模板谷歌做公司网站需要多少钱

网站规划模板,谷歌做公司网站需要多少钱,设计网站遇到的问题,做儿童文学有哪些的网站【本节目标】 1.ArrayList的缺陷 2.链表 1. ArrayList的缺陷 上节课已经熟悉了 ArrayList 的使用#xff0c;并且进行了简单模拟实现。通过源码知道#xff0c; ArrayList 底层使用数组来存储元素#xff1a; public class ArrayListE extends AbstractList…【本节目标】 1.ArrayList的缺陷 2.链表 1. ArrayList的缺陷 上节课已经熟悉了 ArrayList 的使用并且进行了简单模拟实现。通过源码知道 ArrayList 底层使用数组来存储元素 public class ArrayListE extends AbstractListEimplements ListE, RandomAccess, Cloneable, java.io.Serializable {// ... // 默认容量是10private static final int DEFAULT_CAPACITY 10;//... // 数组用来存储元素transient Object[] elementData; // non-private to simplify nested class access// 有效元素个数private int size;public ArrayList(int initialCapacity) {if (initialCapacity 0) {this.elementData new Object[initialCapacity];} else if (initialCapacity 0) {this.elementData EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException(Illegal Capacity: initialCapacity);}} // ... } 由于其底层是一段连续空间当 在 ArrayList 任意位置插入或者删除元素时就需要将后序元素整体往前或者往后 搬移时间复杂度为 O(n) 效率比较低因此 ArrayList 不适合做任意位置插入和删除比较多的场景 。因此 java集合中又引入了LinkedList 即链表结构。 2. 链表 2.1 链表的概念及结构 链表是一种 物理存储结构上非连续 存储结构数据元素的 逻辑顺序 是通过链表中的 引用链接 次序实现的 。 实际中链表的结构非常多样以下情况组合起来就有 8 种链表结构 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 虽然有这么多的链表的结构但是我们重点掌握两种 : 头单向非循环链表结构简单一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。 无头双向链表在Java的集合框架库中LinkedList底层实现就是无头双向循环链表。 2.2 无头单向非循环链表的实现 接口 public interface Ilinklist {// 1、无头单向非循环链表实现//头插法void addFirst(int val);//尾插法void addLast(int val);//任意位置插入,第一个数据节点为0号下标void addIndex(int index,int val);//查找是否包含关键字key是否在单链表当中boolean contains(int key);//删除第一次出现关键字为key的节点void remove(int key);//删除所有值为key的节点void removeAllKey(int key);//得到单链表的长度int size();//清空单链表void clear();//展示单链表void display();}要有链表首先得有节点 如下就是使用内部类创建了个头结点 有数值和next节点的地址 在创建一个成员变量head指向头结点。未初始化默认为null 我们可以写链表的插入 链表的头插不需要考虑是否为空的情况 链表的尾差需要考虑为空的情况如果是空就直接返回不进行插入 while(cur.next!null) 这个循环是遍历到最后一个链表再将它的next改为新节点的地址即可 随机位置插入 1.考虑给的位置是否合法 2.给的是0或者给的链表长度 3.在范围内的值找到index前一个的链表 4.进行连接 1.合法性 写了一个异常类 写了一个函数捕捉这个异常 再用try-catch来处理异常 2.给的是0或者给的链表长度 如果给的是0就进行头插 如果给的是链表长度就进行尾差 剩下的就比较简单 用了一个函数进行寻找index的前一个位置 再进行连接 链表的打印 再测试下插入是否满足要求 可见插入是满足需求的 是否包含某个元素 删除第一个数值为val的节点 测试 删除所有为为val的节点 测试 确实没有1出现可见全部删除 删除所有存在val值的节点还有一个方法创建一个哨兵位 测试 也是可以的 2.3总代码 接口 public interface Ilinklist {// 1、无头单向非循环链表实现//头插法void addFirst(int val);//尾插法void addLast(int val);//任意位置插入,第一个数据节点为0号下标void addIndex(int index,int val);//查找是否包含关键字key是否在单链表当中boolean contains(int val);//删除第一次出现关键字为key的节点void remove(int val);//删除所有值为key的节点void removeAllKey(int val);//得到单链表的长度int getSize();void clear();void display();}indexNotLegalException.java public class indexNotLegalException extends RuntimeException{public indexNotLegalException(){}public indexNotLegalException(String msg){super(msg);} }LinkList.java public class LinkList implements Ilinklist {static class ListNode{public int val;ListNode next;public ListNode(int val) {this.val val;}}ListNode head;Overridepublic void addFirst(int val) {//链表的头插ListNode nodenew ListNode(val);node.nexthead;headnode;}public void addLast(int val){//链表的尾差ListNode nodenew ListNode(val);if(headnull){headnode;return;}ListNode curhead;while(cur.next!null){curcur.next;}cur.nextnode;}public int getSize(){//获取链表的长度ListNode curhead;int count0;while(cur!null){count;curcur.next;}return count;}public void addIndex(int index,int val){//1.判断合法性try{cheakIndexofAddIndex(index);}catch(indexNotLegalException e){e.printStackTrace();return;}//2.index0||indexsize()if(index0){addFirst(val);return;}if(indexgetSize()){addLast(val);return;}//3.找到index的前一个位置ListNode curfindIndexSubOne(index);//4.进行连接ListNode nodenew ListNode(val);node.nextcur.next;cur.nextnode;}Overridepublic boolean contains(int val) {ListNode curhead;while(cur!null){if(cur.valval){return true;}curcur.next;}return false;}Overridepublic void remove(int val) { //删除第一个节点为val的值if(headnull){return;}ListNode curhead;if(cur.valval){headhead.next;return;}while(cur.next!null){if(cur.next.valval){cur.nextcur.next.next;return;}curcur.next;}}Overridepublic void removeAllKey(int val) {//删除链表所有值为val的节点/* if(headnull){return;}ListNode prevhead;ListNode curhead.next;while(cur!null){if(cur.valval){prev.nextcur.next;curcur.next;}else{prevcur;curcur.next;}}if(head.valval){headhead.next;}*/ListNode Headnew ListNode(0);Head.nexthead;ListNode tempHead;while(temp.next!null){if(temp.next.valval){temp.nexttemp.next.next;}else{temptemp.next;}}headHead.next;}Overridepublic void clear() {}Overridepublic void display() {ListNode curhead;while(cur!null){System.out.print(cur.val );curcur.next;}System.out.println();}private void cheakIndexofAddIndex(int index) throws indexNotLegalException{//判断指定位置插入的index是否合法if(index0||indexgetSize()){throw new indexNotLegalException(AddIndex的index不合法);}}private ListNode findIndexSubOne(int index){ListNode curhead;while(index-10){curcur.next;index--;}return cur;}} test.java public class test {public static void main(String[] args) {LinkList linkListnew LinkList();linkList.addFirst(1);linkList.addFirst(1);linkList.addFirst(1);linkList.addFirst(1);//上面是链表的头插linkList.display();System.out.println();linkList.removeAllKey(1);//删除所有拥有1的节点linkList.display();} }
http://www.hkea.cn/news/14399486/

相关文章:

  • 网站开发设计图psd怎样做读书会网站
  • 网站优化外包价格广州番禺人才网官网
  • 网站建设拟采用的技术路线餐饮网站开发方案
  • 做一些购物网站钟楼做网站
  • 东平可信的网站建设wordpress rss 作用
  • 网站开发方面知识商城做网站
  • 帝国cms 仿站 wordpress河南省建设人才信息网站
  • ie禁止访问网站购物网站建设开题报告
  • 河津市城乡建设局网站建网电气有限公司
  • 北京 外贸网站网络营销理论
  • 昆明双鼎网站制作从化免费网站建设
  • 湖南建设厅网站首页wordpress博客模版
  • 亿通网站建设河北邢台解封了吗
  • 西安市建设工程交易信息网天津seo建站
  • 苏州模板建站哪家好网页游戏平台哪个好
  • 智慧团建网站注册正规东莞网站建设
  • 网站新闻稿模板网站建设招标方案模板
  • 养殖企业网站可以做推广的门户网站
  • 做代码和网站电子商务网站设计书
  • app开发网站建设哪家好node.js网站开发
  • 青岛南丰网站建设公司简述如何让网站排名快速提升
  • 电脑建设银行怎样设置网站查询密码陕西省建设厅网站月报
  • 石油化工建设工程网站网站建设文化市场
  • 新旧网站对比seo优化专员招聘
  • 网站别人帮做的要注意什么手续做逆战网站的名字
  • 企业网站建设递进发展趋势做手机app制作教程
  • 网站自适应手机福田建网站费用
  • 软件定制开发网站局域网的电脑怎么做网站服务器
  • 湖北建设执业资格注册中心网站做网站三年3万块钱
  • 网站设计风格有几种电商设计师常用的网站