电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java 實現鏈表結點插入

瀏覽:33日期:2022-08-17 10:45:01

PS:鏈表是一種數據結構,而數據結構就是一種存放數據的方式。

為什么需要鏈表?

我們知道,數組也可以存儲數據,那么為什么還需要鏈表呢?接下來,我們來看看數組 和鏈表的區別:

1、數組就像身上編了號站成一排的人,要找第10個人很容易,根據人身上的編號很快就能找到。但插入、刪除慢,要往某個位置插入或刪除一個人時,后面的人身上的編號都要變。當然,加入或刪除的人始終末尾的也快。

2、鏈表就像手牽著手站成一圈的人,要找第10個人不容易,必須從第一個人一個個數過去。但插入、刪除快。插入時只要解開兩個人的手,并重新牽上新加進來的人的手就可以。刪除一樣的道理。

鏈表示意圖

Java 實現鏈表結點插入

鏈表的建立

class TestLink{//創建一個外部類private Entry head;//指向頭結點的引用public TestLink(){head = new Entry();//用結點類 new 一個頭結點}class Entry{//Entry 創建一個結點內部類int data;//定義數據塊Entry next;//定義地址塊public Entry(){//構造方法1data = -1;//對結點數據塊初始化next = null;//對地址初始化}public Entry(int val){//構造方法2data = val;//對數據塊賦值next = null;}}}public class TestDemo2 {public static void main(String[] args) {TestLink testlink = new TestLink();//創建一個 鏈表外部類 對象 }}

頭插法:從頭插入

public void insertHead(int val){ //有這么一個結點 Entry cur = new Entry(val); cur.next = head.next; head.next = cur; }

頭插法示意圖:

Java 實現鏈表結點插入

尾插法:從尾插入

public void insertTail(int val){//找到尾巴Entry cur = head;while(cur.next != null){//遍歷結點cur = cur.next;}Entry entry = new Entry(val);//得到的結點cur.next = entry;}

尾插法示意圖:

Java 實現鏈表結點插入

從任意結點插入

public boolean insertPos(int val,int pos){ //1、判斷pos的合法性 if(pos < 0 || pos >= getLength()+1){ return false; } Entry cur = head; for(int i = 0;i <= pos-1;i++){ cur = cur.next; } //cur pos的前一個 Entry entry = new Entry(val); entry.next = cur.next; cur.next = entry; return true; }

示意圖:

Java 實現鏈表結點插入

完整代碼:

package LianBiao;class TestLink1{private Entry head;//指向頭結點的引用public TestLink1(){head = new Entry();}class Entry{//Entry Node int data;Entry next;public Entry(){data = -1;next = null;}public Entry(int val){data = val;next = null;}}public void insertHead(int val){//有這么一個結點 Entry cur = new Entry(val);cur.next = head.next;head.next = cur;/*head.next = cur;cur.next = head.next;*/}public void insertTail(int val){//找到尾巴Entry cur = head;while(cur.next != null){cur = cur.next;}Entry entry = new Entry(val);//得到的結點cur.next = entry;}//得到單鏈表的長度:public int getLength(){int len = 0;Entry cur = head.next;while(cur != null){len++;cur = cur.next;}return len;}//將數據插入到指定位置public boolean insertPos(int val,int pos){//1、判斷pos的合法性if(pos < 0 || pos >= getLength()+1){return false;}Entry cur = head;for(int i = 0;i <= pos-1;i++){cur = cur.next;}//cur pos的前一個Entry entry = new Entry(val);entry.next = cur.next;cur.next = entry;return true;}////show()public void show(){/*Entry cur = head;while(cur.next != null){System.out.println('data:'+cur.next.data);cur = cur.next;}*/Entry cur = head.next;while(cur != null){System.out.println('data:'+cur.data);cur = cur.next;}}}public class LianBiao1 {public static void main(String[] args) {// TODO Auto-generated method stubTestLink1 testlink = new TestLink1();testlink.insertTail(1330);testlink.insertTail(110);//1330 110 testlink.insertPos(10,0);//10 1330 110if(testlink.insertPos(32,10000)){System.out.println('插入成功');}else{System.out.println('插入失敗');}//10 32 1330 110testlink.show();System.out.println(testlink.getLength());}}

輸出結果:

Java 實現鏈表結點插入

補充:java中創建鏈表,實現鏈表的尾部插入

我就廢話不多說了,大家還是直接看代碼吧~

package test;//目標:創建鏈表,實現鏈表結點的尾部插入class Node_5{ private String data; public Node_5 nextNode; public void setData(String indata){ this.data=indata; } public String getData(){ return this.data; } public void setNextNode(Node_5 newNode){ this.nextNode=newNode; } public Node_5 getNextNode(){ return this.nextNode; } public void addData(String indata){ setData(indata); Node_5 node_5=new Node_5(); Node_5 head=node_5; if(node_5.getData()==null){ node_5.setData(indata); System.out.println(node_5.getData()); } else{ node_5.setNextNode(node_5);node_5.setData(indata); System.out.println(node_5.getData()); } } }public class T_5 { public static void main(String[] args) { // TODO Auto-generated method stub Node_5 node_5=new Node_5(); for(int i=1;i<=3;i++){ node_5.addData('第'+i+'結點'); } }}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 刘秘书_你身边专业的工作范文写作小秘书 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 北京百度网站优化|北京网站建设公司-百谷网络科技 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 服务器之家 - 专注于服务器技术及软件下载分享| 【连江县榕彩涂料有限公司】官方网站 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 领先的大模型技术与应用公司-中关村科金 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 【官网】博莱特空压机,永磁变频空压机,螺杆空压机-欧能优 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 探鸣起名网-品牌起名-英文商标起名-公司命名-企业取名包满意 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | 【连江县榕彩涂料有限公司】官方网站 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 |