Skip to content

Commit 6467ea3

Browse files
committed
use generic
1 parent 5d3424a commit 6467ea3

File tree

45 files changed

+2408
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2408
-18
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package class1;
2+
3+
import java.io.File;
4+
import java.io.FileInputStream;
5+
import java.io.FileNotFoundException;
6+
import java.io.InputStream;
7+
import java.io.InputStreamReader;
8+
import java.util.Scanner;
9+
10+
11+
public class LinkedList<T> {
12+
public Node<T> first,newNode,last=null; //创建三个节点,头节点,新节点,尾节点
13+
public int count;
14+
class Node<T>{
15+
Node<T> link;
16+
int info;
17+
}
18+
public Node<T> createLinked() throws FileNotFoundException{
19+
int num=0;
20+
String inputline;
21+
Class clazz=this.getClass();
22+
InputStream ins=clazz.getResourceAsStream("data.txt"); //通过外部数据创建链表
23+
Scanner scanner=new Scanner(ins); //流输入。
24+
// Scanner scanner=new Scanner(System.in); //Scanner录入从控制台数据,也可以从各种其它地方录入。比如InputStream in等。
25+
while(scanner.hasNextLine()){
26+
// inputline=scanner.toString();
27+
// num=Integer.parseInt(inputline);
28+
29+
String s=scanner.nextLine();
30+
Scanner oneLine=new Scanner(s);
31+
// if (oneLine==null)
32+
// break;
33+
while(oneLine.hasNext()){
34+
String s1=oneLine.next();
35+
num=Integer.parseInt(s1);
36+
if(num==999)
37+
break;
38+
newNode=new Node<T>();
39+
newNode.info=num;
40+
newNode.link=null;
41+
if(first ==null){
42+
first=newNode;
43+
last=newNode;
44+
}else{
45+
last.link=newNode;
46+
last=newNode;
47+
}
48+
}
49+
50+
}
51+
return first;
52+
53+
}
54+
public void insert(int i){ //插入链表数据,可以用这个方法来创建链表,也可以读入数据来创建。
55+
Node<T> newNode=new Node<T>();
56+
newNode.info=i;
57+
newNode.link=null;
58+
if(first==null){
59+
first=newNode;
60+
last=newNode;
61+
}else{
62+
last.link=newNode;
63+
last=newNode;
64+
}
65+
count++;
66+
}
67+
public void print(Node<T> node){ //给一个头节点,打印链表
68+
while(node!=null){
69+
System.out.println(node.info);
70+
node=node.link;
71+
}
72+
}
73+
public int getLength(Node<T> node){ //获取链表长度
74+
int length=0;
75+
while(node!=null){
76+
node=node.link;
77+
length++;
78+
}
79+
return length;
80+
}
81+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package class1;
2+
3+
import java.io.File;
4+
import java.io.FileInputStream;
5+
import java.io.FileNotFoundException;
6+
import java.io.InputStream;
7+
import java.io.InputStreamReader;
8+
import java.util.Scanner;
9+
10+
11+
public class LinkedList<T> {
12+
public Node<T> first,newNode,last=null; //创建三个节点,头节点,新节点,尾节点
13+
public int count;
14+
class Node<T>{
15+
Node<T> link;
16+
T info;
17+
18+
}
19+
public Node<T> createLinked() throws FileNotFoundException{
20+
T num;
21+
String inputline;
22+
Class clazz=this.getClass();
23+
InputStream ins=clazz.getResourceAsStream("data.txt"); //通过外部数据创建链表
24+
Scanner scanner=new Scanner(ins); //流输入。
25+
// Scanner scanner=new Scanner(System.in); //Scanner录入从控制台数据,也可以从各种其它地方录入。比如InputStream in等。
26+
while(scanner.hasNextLine()){
27+
// inputline=scanner.toString();
28+
// num=Integer.parseInt(inputline);
29+
30+
String s=scanner.nextLine();
31+
Scanner oneLine=new Scanner(s);
32+
// if (oneLine==null)
33+
// break;
34+
while(oneLine.hasNext()){
35+
String s1=oneLine.next();
36+
num=Integer.parseInt(s1);
37+
if(num==999)
38+
break;
39+
newNode=new Node<T>();
40+
newNode.info=num;
41+
newNode.link=null;
42+
if(first ==null){
43+
first=newNode;
44+
last=newNode;
45+
}else{
46+
last.link=newNode;
47+
last=newNode;
48+
}
49+
}
50+
51+
}
52+
return first;
53+
54+
}
55+
public void insert(int i){ //插入链表数据,可以用这个方法来创建链表,也可以读入数据来创建。
56+
Node<T> newNode=new Node<T>();
57+
newNode.info=i;
58+
newNode.link=null;
59+
if(first==null){
60+
first=newNode;
61+
last=newNode;
62+
}else{
63+
last.link=newNode;
64+
last=newNode;
65+
}
66+
count++;
67+
}
68+
public void print(Node<T> node){ //给一个头节点,打印链表
69+
while(node!=null){
70+
System.out.println(node.info);
71+
node=node.link;
72+
}
73+
}
74+
public int getLength(Node<T> node){ //获取链表长度
75+
int length=0;
76+
while(node!=null){
77+
node=node.link;
78+
length++;
79+
}
80+
return length;
81+
}
82+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package class1;
2+
3+
import java.io.FileNotFoundException;
4+
5+
import org.omg.PortableInterceptor.INACTIVE;
6+
7+
import class1.LinkedList.Node;
8+
9+
public class TestClass {
10+
11+
public static void main(String[] args) throws FileNotFoundException {
12+
LinkedList<Integer> ll=new LinkedList<>();
13+
Node<Integer> node=new Node<Integer>(5);
14+
15+
}
16+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package class1;
2+
3+
import java.io.File;
4+
import java.io.FileInputStream;
5+
import java.io.FileNotFoundException;
6+
import java.io.InputStream;
7+
import java.io.InputStreamReader;
8+
import java.util.Scanner;
9+
10+
11+
public class LinkedList<T> {
12+
public Node<T> first,newNode,last=null; //创建三个节点,头节点,新节点,尾节点
13+
public int count;
14+
class Node<T>{
15+
Node<T> link;
16+
int info;
17+
T key;
18+
public Node(T key){
19+
this.key=key;
20+
}
21+
}
22+
// public void insertNode(Node<T> node){
23+
//
24+
// }
25+
public Node<T> createLinked() throws FileNotFoundException{
26+
int num=0;
27+
String inputline;
28+
Class clazz=this.getClass();
29+
InputStream ins=clazz.getResourceAsStream("data.txt"); //通过外部数据创建链表
30+
Scanner scanner=new Scanner(ins); //流输入。
31+
// Scanner scanner=new Scanner(System.in); //Scanner录入从控制台数据,也可以从各种其它地方录入。比如InputStream in等。
32+
while(scanner.hasNextLine()){
33+
// inputline=scanner.toString();
34+
// num=Integer.parseInt(inputline);
35+
36+
String s=scanner.nextLine();
37+
Scanner oneLine=new Scanner(s);
38+
// if (oneLine==null)
39+
// break;
40+
while(oneLine.hasNext()){
41+
String s1=oneLine.next();
42+
num=Integer.parseInt(s1);
43+
if(num==999)
44+
break;
45+
newNode=new Node<T>();
46+
newNode.info=num;
47+
newNode.link=null;
48+
if(first ==null){
49+
first=newNode;
50+
last=newNode;
51+
}else{
52+
last.link=newNode;
53+
last=newNode;
54+
}
55+
}
56+
57+
}
58+
return first;
59+
60+
}
61+
public void insert(Node<T> newNode){ //插入链表数据,可以用这个方法来创建链表,也可以读入数据来创建。
62+
/* Node<T> newNode=new Node<T>();
63+
newNode.info=i;
64+
newNode.link=null;*/
65+
if(first==null){
66+
first=newNode;
67+
last=newNode;
68+
}else{
69+
last.link=newNode;
70+
last=newNode;
71+
}
72+
count++;
73+
}
74+
public void print(Node<T> node){ //给一个头节点,打印链表
75+
while(node!=null){
76+
System.out.println(node.info);
77+
node=node.link;
78+
}
79+
}
80+
public int getLength(Node<T> node){ //获取链表长度
81+
int length=0;
82+
while(node!=null){
83+
node=node.link;
84+
length++;
85+
}
86+
return length;
87+
}
88+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package class1;
2+
3+
import java.io.File;
4+
import java.io.FileInputStream;
5+
import java.io.FileNotFoundException;
6+
import java.io.InputStream;
7+
import java.io.InputStreamReader;
8+
import java.util.Scanner;
9+
10+
11+
public class LinkedList<T> {
12+
public Node<T> first,newNode,last=null; //创建三个节点,头节点,新节点,尾节点
13+
public int count;
14+
class Node<T>{
15+
Node<T> link;
16+
int info;
17+
T key;
18+
// public Node(T key){
19+
// this.key=key;
20+
// }
21+
}
22+
// public void insertNode(Node<T> node){
23+
//
24+
// }
25+
public Node<T> createLinked() throws FileNotFoundException{
26+
int num=0;
27+
String inputline;
28+
Class clazz=this.getClass();
29+
InputStream ins=clazz.getResourceAsStream("data.txt"); //通过外部数据创建链表
30+
Scanner scanner=new Scanner(ins); //流输入。
31+
// Scanner scanner=new Scanner(System.in); //Scanner录入从控制台数据,也可以从各种其它地方录入。比如InputStream in等。
32+
while(scanner.hasNextLine()){
33+
// inputline=scanner.toString();
34+
// num=Integer.parseInt(inputline);
35+
36+
String s=scanner.nextLine();
37+
Scanner oneLine=new Scanner(s);
38+
// if (oneLine==null)
39+
// break;
40+
while(oneLine.hasNext()){
41+
String s1=oneLine.next();
42+
num=Integer.parseInt(s1);
43+
if(num==999)
44+
break;
45+
newNode=new Node<T>(null);
46+
newNode.info=num;
47+
newNode.link=null;
48+
if(first ==null){
49+
first=newNode;
50+
last=newNode;
51+
}else{
52+
last.link=newNode;
53+
last=newNode;
54+
}
55+
}
56+
57+
}
58+
return first;
59+
60+
}
61+
public void insert(T key){ //插入链表数据,可以用这个方法来创建链表,也可以读入数据来创建。
62+
Node<T> newNode=new Node<T>();
63+
newNode.info=i;
64+
newNode.link=null;
65+
if(first==null){
66+
first=newNode;
67+
last=newNode;
68+
}else{
69+
last.link=newNode;
70+
last=newNode;
71+
}
72+
count++;
73+
}
74+
public void print(Node<T> node){ //给一个头节点,打印链表
75+
while(node!=null){
76+
System.out.println(node.info);
77+
node=node.link;
78+
}
79+
}
80+
public int getLength(Node<T> node){ //获取链表长度
81+
int length=0;
82+
while(node!=null){
83+
node=node.link;
84+
length++;
85+
}
86+
return length;
87+
}
88+
}

0 commit comments

Comments
 (0)