In: Computer Science
Create a program that implements a singly linked list of Students.
Each node must contain the following variables:
In main():
Student_ID |
Student_Name |
00235 |
Mohammad |
00662 |
Ahmed |
00999 |
Ali |
00171 |
Fahad |
Student_ID |
Student_Name |
00236 |
Salman |
00663 |
Suliman |
00998 |
Abdulrahman |
import java.util.*;
class Students implements Cloneable{
private String student_ID;
private String student_Name;
private Students next;
int length;
public Students(String student_ID, String
student_Name){
this.student_ID = student_ID;
this.student_Name =
student_Name;
this.next = null;
length = 0;
}
public String getStudent_ID(){
return student_ID;
}
public String getStudent_Name(){
return student_Name;
}
public Students getNext(){
return next;
}
public int getLength(){
return length;
}
public void setStudent_ID(String student_ID){
this.student_ID=student_ID;
}
public void setStudent_Name(String
student_Name){
this.student_Name =
student_Name;
}
public void setNext(Students next){
this.next = next;
}
public void setLength(int length){
this.length = length;
}
public Object clone() throws
CloneNotSupportedException
{
return super.clone();
}
public String toString(){
return "Student Id :
"+student_ID+", Student Name : "+student_Name+", next->
"+next;
}
}
public class Test{
public static void main(String[] args) throws
Exception{
Students head = addHead();
Students tail = addTail();
System.out.println("haed list
=>"+head);
System.out.println("\ntail list
=>"+tail);
deleteTail(tail);
Students dupicateList =
duplicate(head);
System.out.println("\nduplicate
list =>"+tail);
Students s = new
Students("00001","SN");
addAfter(head, s);
System.out.println("haed list
=>"+head);
System.out.println("haed list
length =>"+length(head));
Students s1 =
find(head,"00001");
System.out.println("found student
name =>"+s1.getStudent_Name());
Students[] sArr=new
Students[2];
sArr[0] = head;
sArr[1] = tail;
deleteAll(sArr);
System.out.println("haed list
=>"+head);
System.out.println("\ntail list
=>"+tail);
}
public static Students addHead(){
int length = 1;
Students students1 = new
Students("00235","Mohammad");
Students students2 = new
Students("00662","Ahmed");
Students students3 = new
Students("00999","Ali");
Students students4 = new
Students("00171","Fahad");
students1.setNext(students2);length++;
students2.setNext(students3);length++;
students3.setNext(students4);length++;
students1.setLength(length);
return students1;
}
public static Students addTail(){
int length = 1;
Students students1 = new
Students("00236","Salman");
Students students2 = new
Students("00663","Suliman");
Students students3 = new
Students("00998","Abdulrahman");
students1.setNext(students2);length++;
students2.setNext(students3);length++;
students1.setLength(length);
return students1;
}
public static void deleteTail(Students list){
list = null;
}
public static void deleteAll(Students[]
listArr){
for(int i=0; i<listArr.length;
i++){
listArr[i]=
null;
}
}
public static Students duplicate(Students list) throws
CloneNotSupportedException {
Students dupicateList =
(Students)list.clone();
return dupicateList;
}
public static void addAfter(Students list, Students
s){
int length =
list.getLength();
Students last = null;
for(int i=0; i<length;
i++){
last =
list.getNext();
}
last.setNext(s);
length++;
list.setLength(length);
}
public static int length(Students list){
return list.getLength();
}
public static Students find(Students list, String
student_ID){
int length =
list.getLength();
Students s = null;
Students temp = list;
if(list.getStudent_ID().equals(student_ID) ){
return
list;
}
for(int i=1; i<length;
i++){
s =
temp.getNext();
temp = s;
//System.out.println(s.getStudent_ID());
if(s.getStudent_ID().equals(student_ID) ){
return s;
}
}
return s;
}
}