20210111 링크드리스트

NOAH·2021년 1월 11일
0
post-thumbnail

일지
야심차게 이것 저것 찾아가며 야심하게 코딩했는데,
출력이 내 예상과 달랐다.뇌정지가 왔다.
어디서부터 잘못 된걸까, 내일 해야겠다. ^^

배경지식

  • 자료구조란?
    자료구조는 메모리를 효율적으로 사용하기 위한 목적이 가장 큽니다. RAM(Random Access memory)각각의 주소에 접근하는 속도가 같기 때문에, 찾고자하는 데이터의 주소를 알기만 한다면 굉장히 빠른 속도를 데이터를 가져올 수 있습니다. 이러한 RAM특징을 잘 이용하는 것이 중요핣니다.

학습 목표

영상 정보를 보관하는 데이터 구조를 선언하고, 데이터 인스턴스를 생성한다.
링크드 리스트 구조(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

0개의 댓글