本文共 2459 字,大约阅读时间需要 8 分钟。
在这里就不解释了,代码里有注释很容易看懂的!
package List;/** * @author ganxiang * @IDE IntelliJ IDEA * @project_name JavaDemo * @filename SingalList * @date 2020/02/24 */public class SignalList { class DefineNode{ //创建带头结点的链表,head->data1->data2->data3 int data; DefineNode next; public DefineNode(int d){ this.data=d; } } DefineNode head; public void insret_one(int dex){ //插入一个节点 if(head==null){ head =new DefineNode(dex); System.out.println(head.data); } } DefineNode temp ; public DefineNode insert_many(){ //插入多个节点,这里插入6个 for (int i=10;i<=15;i++){ if (temp==null) { temp = new DefineNode(i); } else { DefineNode node =temp; while (node.next!=null){ node=node.next;//找到尾结点 将值赋给尾结点 } node.next=new DefineNode(i); } } return temp; } public int getSize(DefineNode t) { //计算链表的长度 int size=0; while(t!=null){ size++; t=t.next; } return size; } public int printList(DefineNode t){ //打印链表 while (t!=null){ System.out.println(t.data); t=t.next; } return 0; } public DefineNode addFirst(int data,DefineNode t){ //插入链表中的第一个节点(头结点) DefineNode node = new DefineNode(data); if (t ==null){ t=node; } else{ node.next =t; t =node;// printList(t); } return t; } public void addLast(int data){ //插入链表中的最后一个节点(尾节点) DefineNode node =new DefineNode(data); DefineNode t=temp; if (t ==null){ t=node; } else{ while (t.next!=null){ // System.out.println(t.data); t =t.next; } t.next =node; } } public DefineNode inset_index(DefineNode t, int k,int data){ //指定索引插入节点 int size =getSize(t); if (k<1||k>size)System.out.println("无法插入数据!"); else{ if (k==1)return addFirst(data,t); else { // if(t==null){ // t =new DefineNode(data);// } if (k ==size){ addLast(data); } else { int count =1; DefineNode tt=t;//保证头结点不变 while(tt!=null&&countgetSize(a))System.out.println("不符合链表的操作范围!"); else { if (k==1)return delFirst(a); else if (k==getSize(a))return delLast(a); else { while (a != null && count getSize(a))System.out.println("不在操作范围!"); else { if (k==1)return upsataFirst(data,a); else if (k==getSize(a))return updataLast(data,a); else { int count =1; DefineNode s =new DefineNode(data); while (a.next!=null&&count
运行展示
指定修改第5个节点的值为200. 这里只展示了一个运行的结果,你们可以多调试看看,我运行都没错误的,若有错误之处恳请各位大佬多多指点。转载地址:http://qhqzi.baihongyu.com/