顺序表与链表的增删查改

it2022-05-08  7

1,顺序表

public class ArrayList{ private int [] array; private int size; public ArrayList (){ array=new int[2]; size=0; } //增 //最简单是从尾部直接增 public void addBack(int number ){ kuorong(); array[size++]=number; } public void addFound(int number){ kuorong(); for(int i=size;i>=1;i--){ array[i]=array[i-1]; } array[0]=number; size++; } public void addMid(int number,int pot){ if(pot<0 ||pot>size){ System.err.println("输入下标错误"); return; } kuorong(); for(int i=size-1;i>=pot;i--){ array[i+1]=array[i]; } array[pot]=number; size++; } //删 public void DeleteBack(){ if(size<=0){ System.err.println("顺序表为空"); return; } array[--size]=0; } public void DeleteFound(){ if(size<=0){ System.err.println("顺序表为空"); return; } kuorong(); for(int i=0;i<size-1;i++){ array[i]=array[i+1]; } array[--size]=0; } public void DeleteWhere(int pot){ if(size<=0){ System.err.println("顺序表为空"); return; } if(pot<0 ||pot>size){ System.err.println("输入下标错误"); return; } kuorong(); for(int i=pot+1;i<size;i++){ array[i-1]=array[i]; } array[--size]=0; } //查 (有问题) public int Search(int number){ for(int i=0;i<array.length;i++){ if(array[i]==number){ return i; } } System.err.println("找不到这个数字"); return -1; } //改 public void Modify(int pot,int number){ if(size<=0){ System.err.println("顺序表为空"); return; } if(pot<0 ||pot>size){ System.err.println("输入下标错误"); return; } for(int i=0;i<size;i++){ if(pot==i){ array[i]=number; } } } //删除掉某一个元素 //写一个扩容 public void kuorong(){ if(size<array.length){ return; } int newsize=array.length*2; int[] newArray=new int[newsize]; for(int i=0;i<size;i++){ newArray[i]=array[i]; } array=newArray; } public void print(){ for(int i=0;i<size;i++){ System.out.print(array[i]+" "); } //System.out.println(); } public static void main(String[] args){ ArrayList list=new ArrayList(); list.print(); list.addBack(0); list.addBack(1); list.addBack(2); list.addBack(3); list.print(); System.out.println(); list.addFound(4); //list.print(); list.addFound(5); list.addFound(6); list.print(); System.out.println(); list.addMid(9,1); list.addMid(9,1); list.addMid(9,1); list.print(); System.out.println(); list.DeleteBack(); list.print(); System.out.println(); list.DeleteFound(); list.print(); System.out.println(); list.DeleteWhere(1); list.DeleteWhere(-1); list.print(); System.out.println(); System.out.println(list.Search(9)); list.Modify(3,8); list.print(); System.out.println(); } }

 

2,链表

class Note{ int val; Note next=null; Note(int val){ this .val=val; this .next=null; } public String toString(){ return String .format(String.valueOf(val)); } } public class Time{ public static void main(String[] args){ Note head=null; head=pushfront (head,4); head=pushfront (head,3); head=pushfront (head,2); head=pushfront (head,1); print(head); head=pushblack (head,5); head=pushblack (head,6); head=pushblack (head,7); head=pushblack (head,8); print(head); head=deletefront (head); print(head); head=deleteblack (head); print(head); } //打印 private static void print (Note head) { for(Note cur=head;cur!=null;cur=cur.next){ System.out.print(cur+"-->"); } System.out.println("null"); } //头插 private static Note pushfront (Note head, int val){ Note note=new Note(val); note.next=head; return note; } //尾插 private static Note pushblack (Note head, int val){ Note note=new Note(val); if(head==null){ return note; }else{ Note last=head; while(last.next!=null){ last=last.next; } last.next=note; } return head; } //头删 private static Note deletefront(Note head){ if(head==null){ return null; } return head.next; } //尾删 private static Note deleteblack(Note head){ if(head==null){ return null; } if(head.next==null){ return null; }else{ Note lastsecond=head; while(lastsecond.next.next!=null){ lastsecond =lastsecond.next; } lastsecond=null; } return head; } }


最新回复(0)