java实现顺序链表

顺序链表的java类文件:SequenceList.java文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package  list;
 
 
 
public  class  SequenceList {
     private  int  LIST_INIT_SIZE =  5 ; //链表的原始大小
     private  int  INCREMENT = 1 ; //链表的增量大小
     private  Object []SqList =  null ; //链表
     private  int  curIndex= 0 ; //当前位置
     /**
      * 初始化链表
      * */
     public  void  initList()
     {
         SqList =  new  Object[LIST_INIT_SIZE];
     }
     /**
      * 向链表中插入元素
      * */
     public  void  insertList(Object o)
     {
         if (curIndex>LIST_INIT_SIZE- 1 ) //判断当前链表是否已经满
         {
             //从新为链表分配空间
             System.out.println( "从新分配空间" );
             LIST_INIT_SIZE+=INCREMENT;
             Object []temp =  new  Object[LIST_INIT_SIZE];
             for ( int  i= 0 ;i<curIndex;i++)
             {
                 temp[i]=SqList[i];
             }
             SqList= null ;
             SqList=temp;
         }
         //链表中如果不让其包含重复元素,则加入这段代码
         /*
         if(isContain(o))
         {
             System.out.println("链表中已包含此元素"+o);
         }else
         {
             
         }
         */
         SqList[curIndex++]= o;
     }
     /**
      * 判断链表中是否包含某元素
      * */
     Boolean isContain(Object o)
     {
         for ( int  i= 0 ;i<curIndex;i++)
         {
             if (SqList[i].equals(o))
             {
                 return  true ;
             }
         }
         return  false ;
     }
     /**
      * 删除链表中的某元素
      *
      * 如果包含重复元素都删除
      * */
     public  void  delete(Object o)
     {
         for ( int  i= 0 ;i<curIndex;i++)
         {
             if (SqList[i].equals(o))
             {
                 for ( int  j=i;j<curIndex- 1 ;j++)
                 {
                     SqList[j]=SqList[j+ 1 ];
                 }
                 curIndex--;
                 continue ;
             }
             if (i==curIndex- 1 )
             {
                 System.out.println( "不存在此元素" +o);
             }
         }
     }
     
     /**
      * 获取链表中的某个元素
      * */
     public  Object getElement( int  i)
     {
         if  (i <=  0  || i > curIndex)
         {
             System.out.println( "获取位置超出了链表中元素个数" +curIndex);
         }
         return  SqList[i- 1 ];
     }
     /**
      * 打印链表
      * */
     public  void  print()
     {
         for ( int  i= 0 ;i<curIndex;i++)
         {
             System.out.print(SqList[i]+ "\t" );
         }
         System.out.println();
     }
     
}

  Main函数测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package  list;
 
public  class  SequenceListMain {
 
     public  static  void  main(String[] args) {
         SequenceList sqList =  new  SequenceList();
         sqList.initList();
         sqList.insertList( 1 );
         sqList.insertList( 2 );
         sqList.insertList( 3 );
         sqList.insertList( 4 );
         sqList.insertList( 5 );
         sqList.insertList( 6 );
         sqList.delete( 5 );
         sqList.delete( 9 );
         sqList.insertList( 1 );
         sqList.print();
         
         sqList.delete( 1 );
         sqList.print();
         
         System.out.println( "第2个元素是:" +sqList.getElement( 1 ));
         System.out.println( "第4个元素是:" +sqList.getElement( 4 ));
         
     }
 
}

猜你喜欢

转载自blog.csdn.net/lalate/article/details/52613354