import java.util.*;
class ListNode {
public int val;
ListNode next=null;
public ListNode(int val){
this.val=val;
}
}
class LinkList{
ListNode first=new ListNode(-1);
//ListNode first;
//public LinkList(int a){
// first=new ListNode(a);
// }
public void add(int n){
ListNode p=new ListNode(n);
ListNode s=first;
while(s.next!=null)
s=s.next;
s.next=p;
}
//遍历单链表
public void PrintList(){
ListNode p=first.next;
while(p.next!=null)
{
System.out.print(p.val+"-->");
p=p.next;
}
System.out.println(p.val);
}
//获取单链表长度
public int getLength(){
ListNode t=first;
int count=0;
while(t.next!=null)
{
count++;
t=t.next;
}
return count;
}
//按位查找
public int Get(int i){
ListNode p=first.next;
int count=1;
int id;
while(p!=null&&count<i)
{
p=p.next;
count++;
}
if(p==null) id=-1;
else id=p.val;
return id;
}
//按值查找
public int Locate(int x){
ListNode p=first.next;
int count=1;
while(p!=null)
{
if(p.val==x) return count;
p=p.next;
count++;
}
return 0;
}
//插入节点
public void Insert(int i,int x){
ListNode p=first;
int count=0;
while(p!=null&&count<i)
{
p=p.next;
count++;
}
if(p==null){
System.out.println("Insert Failed!");
return;
}
else
{
ListNode s=new ListNode(x);
s.next=p.next;
p.next=s;
}
}
//删除节点
public void Delete(int i){
ListNode p=first;
int count=0;
while(p!=null&&count<i)
{
p=p.next;
count++;
}
if(p==null||p.next==null)
{
System.out.println("Can't find the node!");
return;
}
else
{
ListNode s=p.next;
p.next=s.next;
return;
}
}
}
public class Main{
public static void main(String args[]){
LinkList list=new LinkList();
list.add(3);
list.add(4);
list.add(5);
list.PrintList();
System.out.println();
System.out.println(list.getLength());
System.out.println(list.Get(5));
System.out.println(list.Locate(3));
list.Insert(3,1);
list.PrintList();
list.Delete(2);
list.PrintList();
}
}
单链表的创建,打印,长度,查找,插入,删除
最新推荐文章于 2021-05-21 14:56:41 发布