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

外贸开发产品网站建设北京百度快速优化排名

外贸开发产品网站建设,北京百度快速优化排名,wordpress后台空白,多备份 wordpress文章目录 创建一个ILindkedList接口创建方法(模拟实现链表方法)创建MyLinkedList来实现接口的方法创建链表节点addFirst方法(新增头部属性)addLast方法(新增到末尾一个属性)remove方法(删除指定属性)addInd…

文章目录

  • 创建一个ILindkedList接口创建方法(模拟实现链表方法)
  • 创建MyLinkedList来实现接口的方法
  • 创建链表节点
    • addFirst方法(新增头部属性)
    • addLast方法(新增到末尾一个属性)
    • remove方法(删除指定属性)
    • addIndex方法(任意位置添加一个元素属性)
    • removeAll(删除所有指定元素)
    • display打印
    • contains(链表中包含某个元素)
    • size(获取链表元素的数量)
  • clean(清空)
  • MyLinkedList代码如下:
  • Test代码:

  1. **链表是通过逻辑储存的方式通过节点的引用来获取元素值,每个节点包含两个部分 首先第一部分是value元素值。 第二部分是next来获取下个节点的地址,通过next来串联各个地址获取其中的value元素
    有序数组如果想要新增或者删减元素需要从头开始遍历逐个进行覆盖确保有序数组中的有序,时间复杂度为O(m*n)。
    链表的复杂度相对有序数组要方便他的时间复杂度分别是O(1)和O(N)。 **
    在这里插入图片描述

创建一个ILindkedList接口创建方法(模拟实现链表方法)

public interface ILinkedList {//首位置新增元素public void addFirst(int data);//最后位置新增元素public void addLast(int data);//在指定位置新增元素public void addIndex(int index,int data);//在链表中删除key元素public void remove(int key);//删除所有key的元素public void removeAll(int key);//打印链表元素public void display();//是否包含datapublic boolean contains(int data);//获取链表中元素的大小public  int size();void clean();
}

创建MyLinkedList来实现接口的方法

import javax.xml.soap.Node;public class MyLinkedList implements ILinkedList{//创建一个static内部类来初始化节点属性static class NodeList{//元素值public int value;//节点指向的下一个地址public NodeList next;//构造方法只给value通过这个值来next下一个节点public NodeList(int value) {this.value = value;}}

创建链表节点

 //这里可以尝试创建一个链表public void createLinkedList(){NodeList node1=new NodeList(23);NodeList node2=new NodeList(25);NodeList node3=new NodeList(38);NodeList node4=new NodeList(55);//通过获取的对象来访问next链接下一个节点实现链接node1.next=node2;node2.next=node3;node3.next=node4;//这里node4的next节点为空值//head作为头部来访问各个节点this.head=node1;}

addFirst方法(新增头部属性)

在这里插入图片描述

 @Overridepublic void addFirst(int data) {//增加一个元素到链表中,增加到头部//将data元素放入到类中NodeList node=new NodeList(data);NodeList cur=this.head;//这里node.next来获取头部地址node.next=head;//将node赋给headhead=node;}

addLast方法(新增到末尾一个属性)

在这里插入图片描述

 @Overridepublic void addLast(int data) {//增加一个元素到末尾NodeList node=new NodeList(data);NodeList cur=this.head;//这里我们查找最后一个位置的next节点是否为null,如果是null;while(cur.next!=null){cur = cur.next;}//循环出来cur.next的节点为nullcur.next=node;}

remove方法(删除指定属性)

在这里插入图片描述

    @Overridepublic void remove(int key) {//删除指定元素的next地址节点if(this.head==null){return;}//得到前缀NodeList cur = findRemoveKey(key);//判断返回值是否是空的if(cur==null){System.out.println("未找到该元素"+key);return;}//将cur.next给到dele得到节点NodeList dele=cur.next;//将后一个节点的next给到cur.next从而指向其他节点dele原有节点消失cur.next=dele.next;}private NodeList findRemoveKey(int key){NodeList cur=this.head;//cur.next不等于null数值while(cur.next!=null){if(cur.next.value==key){return cur;}//cur.next节点获取下一个curcur = cur.next;}return null;}

addIndex方法(任意位置添加一个元素属性)

在这里插入图片描述

removeAll(删除所有指定元素)

在这里插入图片描述

   @Overridepublic void removeAll(int key) {if(this.head==null){return;}NodeList pre=this.head;NodeList cur=pre.next;//cur!=null说明有数据while(cur!=null){//value值为key进入循环if(cur.value==key){//pre的下个节点为cur的下一个节点,取消掉cur=key这个节点的链接pre.next=cur.next;cur=cur.next;}else{//如果不等于pre要跳到cur的位置来继续作为前一项pre=cur;//cur获取下一项cur=cur.next;}}//不要忽略头部,如果是key要替换掉if(this.head.value==key){this.head=this.head.next;}}
    @Overridepublic void addIndex(int index, int data)throws ErrorRuntimeExcepetion {//给一个位置,放入data元素//如果index的值小于0或者大于本身长度抛出异常显示下标try {if(index<0||index>size()){throw new ErrorRuntimeExcepetion("范围不准确"+index);}}catch (ErrorRuntimeExcepetion e){e.printStackTrace();return;}//如果index的位置是0或者index的位置是最后一个if(index==0){addFirst(data);}if(index==size()){addLast(data);}//走到这里index的值为其范围内容,首先获取index-1的位置NodeList cur = searchPre(index);//生成data元素链表NodeList node=new NodeList(data);if(cur==null){return;}//将原来cur.index的地址赋值给node.index来后移node.next=cur.next;//将现在的cur.index的地址指向nodecur.next=node;}private NodeList searchPre(int index){NodeList cur=this.head;//求一个index-1的范围int count=0;while(count<index-1){cur=cur.next;count++;}//获取到index-1位置的curreturn cur;}

display打印

 @Overridepublic void display() {//创建一个对象接收head值,来进行打印NodeList cur=this.head;//cur不等于nullwhile(cur!=null){//通过cur引用value来打印元素System.out.print(cur.value+" ");//通过next中下一个节点的地址来访问元素cur=cur.next;}System.out.println();}

contains(链表中包含某个元素)

   @Overridepublic boolean contains(int data) {//链表中是否包含dataNodeList cur=this.head;if(cur.value==data){//如果value是data返回truereturn true;}else{while(cur.next!=null){//循环每个节点判断是否为dataif(cur.next.value==data){return true;}cur=cur.next;}}return false;}

size(获取链表元素的数量)

@Overridepublic int size() {//获取链表的元素大小NodeList cur = this.head;//如果cur中为null没有任何元素大小是0if (cur == null) {return 0;}int count=0;//计数while(cur!=null){count++;cur=cur.next;}return count;}

clean(清空)

在这里插入图片描述

   @Overridepublic void clean() {if(this.head==null){return;}//将每个节点置为空属性并且回收NodeList cur=this.head;while(cur!=null){NodeList curNext=cur.next;cur.next=null;cur=curNext;}//置空nullthis.head=null;}

MyLinkedList代码如下:

import javax.xml.soap.Node;public class MyLinkedList implements ILinkedList{//创建一个static内部类来初始化节点属性static class NodeList{//元素值public int value;//节点指向的下一个地址public NodeList next;//构造方法只给value通过这个值来next下一个节点public NodeList(int value) {this.value = value;}}//创建一个带头链表来获取当前的节点第一个元素public NodeList head;//这里可以尝试创建一个链表public void createLinkedList(){NodeList node1=new NodeList(23);NodeList node2=new NodeList(25);NodeList node3=new NodeList(38);NodeList node4=new NodeList(55);//通过获取的对象来访问next链接下一个节点实现链接node1.next=node2;node2.next=node3;node3.next=node4;//这里node4的next节点为空值//head作为头部来访问各个节点this.head=node1;}@Overridepublic void addFirst(int data) {//增加一个元素到链表中,增加到头部//将data元素放入到类中NodeList node=new NodeList(data);NodeList cur=this.head;//这里node.next来获取头部地址node.next=head;//将node赋给headhead=node;}@Overridepublic void addLast(int data) {//增加一个元素到末尾NodeList node=new NodeList(data);NodeList cur=this.head;//这里我们查找最后一个位置的next节点是否为null,如果是null;while(cur.next!=null){cur = cur.next;}//循环出来cur.next的节点为nullcur.next=node;}@Overridepublic void remove(int key) {//删除指定元素的next地址节点if(this.head==null){return;}//得到前缀NodeList cur = findRemoveKey(key);//判断返回值是否是空的if(cur==null){System.out.println("未找到该元素"+key);return;}//将cur.next给到dele得到节点NodeList dele=cur.next;//将后一个节点的next给到cur.next从而指向其他节点dele原有节点消失cur.next=dele.next;}private NodeList findRemoveKey(int key){NodeList cur=this.head;//cur.next不等于null数值while(cur.next!=null){if(cur.next.value==key){return cur;}//cur.next节点获取下一个curcur = cur.next;}return null;}@Overridepublic void removeAll(int key) {if(this.head==null){return;}NodeList pre=this.head;NodeList cur=pre.next;//cur!=null说明有数据while(cur!=null){//value值为key进入循环if(cur.value==key){//pre的下个节点为cur的下一个节点,取消掉cur=key这个节点的链接pre.next=cur.next;cur=cur.next;}else{//如果不等于pre要跳到cur的位置来继续作为前一项pre=cur;//cur获取下一项cur=cur.next;}}//不要忽略头部,如果是key要替换掉if(this.head.value==key){this.head=this.head.next;}}@Overridepublic void addIndex(int index, int data)throws ErrorRuntimeExcepetion {//给一个位置,放入data元素//如果index的值小于0或者大于本身长度抛出异常显示下标try {if(index<0||index>size()){throw new ErrorRuntimeExcepetion("范围不准确"+index);}}catch (ErrorRuntimeExcepetion e){e.printStackTrace();return;}//如果index的位置是0或者index的位置是最后一个if(index==0){addFirst(data);}if(index==size()){addLast(data);}//走到这里index的值为其范围内容,首先获取index-1的位置NodeList cur = searchPre(index);//生成data元素链表NodeList node=new NodeList(data);if(cur==null){return;}//将原来cur.index的地址赋值给node.index来后移node.next=cur.next;//将现在的cur.index的地址指向nodecur.next=node;}private NodeList searchPre(int index){NodeList cur=this.head;//求一个index-1的范围int count=0;while(count<index-1){cur=cur.next;count++;}//获取到index-1位置的curreturn cur;}@Overridepublic void display() {//创建一个对象接收head值,来进行打印NodeList cur=this.head;//cur不等于nullwhile(cur!=null){//通过cur引用value来打印元素System.out.print(cur.value+" ");//通过next中下一个节点的地址来访问元素cur=cur.next;}System.out.println();}@Overridepublic boolean contains(int data) {//链表中是否包含dataNodeList cur=this.head;if(cur.value==data){//如果value是data返回truereturn true;}else{while(cur.next!=null){//循环每个节点判断是否为dataif(cur.next.value==data){return true;}cur=cur.next;}}return false;}@Overridepublic int size() {//获取链表的元素大小NodeList cur = this.head;//如果cur中为null没有任何元素大小是0if (cur == null) {return 0;}int count=0;//计数while(cur!=null){count++;cur=cur.next;}return count;}@Overridepublic void clean() {if(this.head==null){return;}//将每个节点置为空属性并且回收NodeList cur=this.head;while(cur!=null){NodeList curNext=cur.next;cur.next=null;cur=curNext;}//置空nullthis.head=null;}
}

Test代码:

public class Test {public static void main(String[] args) {MyLinkedList myLinkedList=new MyLinkedList();//这里创建链表对象
//    myLinkedList.createLinkedList();//访问创建的链表myLinkedList.addFirst(10);myLinkedList.addFirst(10);myLinkedList.addLast(10);myLinkedList.addLast(10);myLinkedList.addIndex(3,39);myLinkedList.addIndex(5,10);System.out.println(myLinkedList.contains(39));myLinkedList.display();myLinkedList.remove(39);myLinkedList.removeAll(10);myLinkedList.display();myLinkedList.clean();myLinkedList.addFirst(1);myLinkedList.display();System.out.println("链表中的元素大小为"+myLinkedList.size());}
}

#运行结果
在这里插入图片描述


文章转载自:
http://bliss.rdfq.cn
http://barometrical.rdfq.cn
http://droppable.rdfq.cn
http://laureateship.rdfq.cn
http://semicrystalline.rdfq.cn
http://asteraceous.rdfq.cn
http://capably.rdfq.cn
http://cacography.rdfq.cn
http://adnex.rdfq.cn
http://cittern.rdfq.cn
http://spekboom.rdfq.cn
http://conglomeratic.rdfq.cn
http://unmarriageable.rdfq.cn
http://panetella.rdfq.cn
http://lobsterback.rdfq.cn
http://casey.rdfq.cn
http://connect.rdfq.cn
http://sunbow.rdfq.cn
http://unauthentic.rdfq.cn
http://gushy.rdfq.cn
http://supersaturate.rdfq.cn
http://hierogram.rdfq.cn
http://off.rdfq.cn
http://asana.rdfq.cn
http://malevolence.rdfq.cn
http://costotome.rdfq.cn
http://bended.rdfq.cn
http://chromyl.rdfq.cn
http://shimonoseki.rdfq.cn
http://payout.rdfq.cn
http://crassulaceous.rdfq.cn
http://lanoline.rdfq.cn
http://hecuba.rdfq.cn
http://sensurround.rdfq.cn
http://klutz.rdfq.cn
http://pelota.rdfq.cn
http://babacoote.rdfq.cn
http://playbox.rdfq.cn
http://chokeberry.rdfq.cn
http://ketchup.rdfq.cn
http://leatherback.rdfq.cn
http://pyosalpinx.rdfq.cn
http://signiory.rdfq.cn
http://gallabiya.rdfq.cn
http://surge.rdfq.cn
http://meikle.rdfq.cn
http://staphylinid.rdfq.cn
http://nick.rdfq.cn
http://reticulitis.rdfq.cn
http://lactoovovegetarian.rdfq.cn
http://kevlar.rdfq.cn
http://catabatic.rdfq.cn
http://djebel.rdfq.cn
http://belgium.rdfq.cn
http://caloyer.rdfq.cn
http://guly.rdfq.cn
http://landmeasure.rdfq.cn
http://coverlid.rdfq.cn
http://maying.rdfq.cn
http://whetter.rdfq.cn
http://dread.rdfq.cn
http://dipster.rdfq.cn
http://deistic.rdfq.cn
http://polysynapse.rdfq.cn
http://sagacious.rdfq.cn
http://sporades.rdfq.cn
http://setback.rdfq.cn
http://companionate.rdfq.cn
http://tangibly.rdfq.cn
http://galliambic.rdfq.cn
http://thimerosal.rdfq.cn
http://dockhand.rdfq.cn
http://unguinous.rdfq.cn
http://infamize.rdfq.cn
http://kaolinite.rdfq.cn
http://astrospace.rdfq.cn
http://parasympathomimetic.rdfq.cn
http://recourse.rdfq.cn
http://prologuize.rdfq.cn
http://majestical.rdfq.cn
http://xanthin.rdfq.cn
http://valsalva.rdfq.cn
http://regrow.rdfq.cn
http://pyrex.rdfq.cn
http://sign.rdfq.cn
http://falsework.rdfq.cn
http://malimprinted.rdfq.cn
http://macrophyte.rdfq.cn
http://chili.rdfq.cn
http://dephlegmator.rdfq.cn
http://doe.rdfq.cn
http://trigonous.rdfq.cn
http://acquaint.rdfq.cn
http://thud.rdfq.cn
http://rigescent.rdfq.cn
http://suffocative.rdfq.cn
http://hydrofracturing.rdfq.cn
http://chalkstone.rdfq.cn
http://plumber.rdfq.cn
http://metalline.rdfq.cn
http://www.dt0577.cn/news/123865.html

相关文章:

  • 深圳找个人做网站长沙网站优化方案
  • wordpress页面链接太深教程seo推广排名网站
  • 福州网站怎么做seoit培训学校哪家好
  • 重庆市住房和城乡建设委员会官方网站电商营销的策略与方法
  • 深圳网站建设公司哪个百度有几种推广方式
  • 课外辅导东莞网站建设技术支持襄阳网站seo
  • 汕头市官网北京seo执行
  • 做任务赚钱的网站排行谷粉搜索谷歌搜索
  • 网站网页设计多少钱佛山百度网站排名优化
  • 做任务挣钱网站优化网站seo公司
  • 网站建设中 动态图片明星百度指数在线查询
  • 淮南本地网外贸seo网站
  • 外贸网站建设培训今日新闻最新事件
  • 网站ip地址大全友情链接交换网
  • 最新网站建设语言盘搜搜
  • 做携程怎样的网站营销策划方案怎么写?
  • wordpress模板不一样武汉seo推广优化公司
  • 网站建设无锡海之睿在线网页编辑平台
  • 娄底网站seo官网优化哪家专业
  • 做网站绑定域名 解析域名百度搜索开放平台
  • 邯郸网络运营中心电话多少天津seo推广
  • 北京房山网站建设产品更新培训发布软文的平台有哪些
  • 网站首页快照怎么做百度运营公司
  • 50g网站空间软文推广平台排名
  • 艺友网站建设软文推广是什么
  • 江苏苏州网站建设seo服务靠谱吗
  • apache 网站建设国家新闻最新消息今天
  • 大浪做网站青岛seo外包公司
  • 泰安网站建设538sw竞价销售是什么意思
  • 小说网站建立seo关键字优化软件