일지
야심차게 이것 저것 찾아가며 야심하게 코딩했는데,
출력이 내 예상과 달랐다.뇌정지가 왔다.
어디서부터 잘못 된걸까, 내일 해야겠다. ^^
영상 정보를 보관하는 데이터 구조를 선언하고, 데이터 인스턴스를 생성한다.
링크드 리스트 구조(Linked List)를 구현하기 위해서 데이터 구조에는 다음 영상 정보 레퍼런스를 참조할 수 있어야 한다.
Array 나 List 를 사용하지 않고 직접 데이터 구조만 사용해서 구현해야 한다.
영상 데이터 구조
영상 정보를 표현하는 데이터 구조는 다음과 같은 요구사항을 만족한다.
import java.util.Random;
public class VideoData { // VideoData 라는 클래스 하나를 선언합니다.
String Id; // 고유한 id값
int SubjectNumber = 0; // SubjectNumber 안에 간단한 정수값 데이터를 선언합니다.
int[] OneToFifteen = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int RunTime;
VideoData next = null; // 노드의 다음값을 null로 선언합니다.
VideoData(String name){// 값을 하나 받아서 생성자를 생성하나를 만듭니다.
this.Id= name ; //이 데이타에 넣어줍니다.
}
void AddVideo(String name) {// 값을 하나 받아서 생성자를 생성하
this.SubjectNumber++; // 제목은 +1
this.RunTime = new Random().nextInt(OneToFifteen.length); // 1~15중에 랜덤을 하나 뽑기
VideoData end = new VideoData(Id);
VideoData n = this;
while (n.next != null) {
n = n.next;
}
n.next = end;
System.out.println("제목" + this.SubjectNumber + "(" + this.Id + ")" + ":" + this.RunTime);
}
public class Main {
public static void main(String[] arg) {
VideoData Start = new VideoData("abcd");
Start.AddVideo("afbc");
Start.AddVideo("bdfa");
Start.AddVideo("afaf");
Start.AddVideo("abab");
Start.AddVideo("acac");
Start.AddVideo("bdbd");
Start.AddVideo("baaa");
Start.AddVideo("cafe");
Start.AddVideo("ccef");
Start.AddVideo("afcd");
Start.AddVideo("fabc");
Start.AddVideo("dcba");
}
}
출력값
제목1(abcd):2
제목2(abcd):8
제목3(abcd):11
제목4(abcd):1
제목5(abcd):2
제목6(abcd):0
제목7(abcd):10
제목8(abcd):13
제목9(abcd):3
제목10(abcd):12
제목11(abcd):3
제목12(abcd):4