博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现顺序链表
阅读量:2157 次
发布时间:2019-05-01

本文共 2395 字,大约阅读时间需要 7 分钟。

顺序链表的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
));
         
    
}
 
}

转载地址:http://dpmwb.baihongyu.com/

你可能感兴趣的文章
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>