Major/Data Structure & Algorithm

    원형 연결 리스트

    원형 연결 리스트 단순 연결 리스트에서 마지막 노드가 리스트의 첫 번째 노드를 가리키게 해서 리스트의 구조를 원형으로 만든 리스트 1. 첫번째 노드의 주소를 temp에 저장해서 순회 시작점을 지정한다. (temp는 순회용 포인터임.) 2. while문 돌려서 temp를 마지막 노드까지 이동시킨다. 3. 노드 new가 temp의 다음 노드, 즉 삽입하기 전 리스트의 첫번째 노드를 가리키게 함. 원형 연결 리스트이기 때문에 마지막 노드의 다음 노드가 첫번째 노드가 된다. 4. 포인터 new의 값을 포인터 temp가 가리키고 있는 마지막 노드의 링크에 저장하여 마지막 노드가 노드 new를 가리키게 한다. 5. 노드 new의 주소를 리스트 포인터에 저장한다. 이 과정으로 노드 new가 리스트의 첫번째 노드로 지..

    이중 연결 리스트의 삽입, 삭제 + (다항식 연산 )

    다항식의 연결 자료구조 표현 * 공백 다항식에서의 항 삽입 복잡하게 생각할 필요 없이 새롭게 삽입할 노드 new의 포인터 값을 리스트 포인터에 저장한다. 이와 같은 과정으로 new가 list의 첫번째가 되고, null값을 가진 last에 포인터 new의 값을 저장하면 마지막 노드가 new를 가리키게 된다. 끝! * 다항식에서의 항 삽입 포인터 new의 값을 노드 last의 링크에 저장한다. 노드 new를 노드 last의 다음 노드로 연결함 포인터 new의 값을 포인터 last에 저장하고 노드 new를 마지막 노드로 지정하면 됨. *다항식 연산도 가능 addPoly() 메소드 구현 시 차수 비교를 기준으로 케이스 나누기. 순회용 참조변수인 p와 q를 다음으로 이동시키면서 결과 다항식 C에 appendTer..

    연결리스트 노드 개수 카운팅,특정 노드 순서 바꾸기,첫번째 노드 삭제하기 ...

    연결리스트 노드 개수 카운팅,특정 노드 순서 바꾸기,첫번째 노드 삭제하기 ...

    - 노드 개수 카운팅하는 메소드 public int countNode() { ListNode current = head; int count = 0; while(current != null){ current = current.link; // current = current.nextNode count++; } return count; } 솔직히.... 진짜 느낌대로 짠 코드라 잘 짰는진 모르겠지만 current가 head를 참조하게 한 뒤에 current 가 null값이 되기 전까지 count 변수를 증가시킨다. // L = (빨강, 주황, 노랑, 초록, 파랑, 남색, 보라) int counting; counting = L.countNode(); for(int i = 0; i < counting; i++) ..

    [JAVA] 연결리스트, 노드, 삽입 및 삭제

    [JAVA] 연결리스트, 노드, 삽입 및 삭제

    들어가기에 앞서 노드 할당 과정에 대해서 정확히 알고 있어야 한다. 처음에 제대로 이해도 못한 채 무작정 코드부터 뜯어보아서 그런가 오개념만 잔뜩 적립했다. - 자유 공간 리스트에서 노드를 할당할 때는 항상 첫번째 노드를 할당한다. 1. 리스트(L)의 첫번째 노드(head node)의 주소를 포인터 new에 저장하여 포인터 new가 할당할 노드를 가리킨다. 나는 처음에 주소를 저장하는 것이 아닌 link값을 저장하는 것으로 잘못 이해했다. link가 아니라 노드 자체의 주소!인 것이다. 이 둘의 차이를 잘 알아야 이러한 자료구조를 보다 효과적으로 이해할 수 있을 것 같은... 2. 포인터 L에 리스트의 두번째 노드의 주소(L.link) 저장 여기서도 주소라는 단어가 나오는데 앞에서 말한 주소와는 다르다...

    [python+]연결리스트,노드,삽입,삭제

    노드 : 연결 리스트에서 각각의 원소를 칭하는 말. 노드가 갖고 있는 것은 데이터와 뒤쪽 노드를 가리키는(참조하는) 포인터이다. Head Node : 맨 앞에 있는 노드 Tail Node(꼬리 노드) : 맨 끝에 있는 노드 Prodecessor Node(앞쪽 노드) : 각 노드에서 바로 앞에 있는 노드 Successor Node(뒤쪽 노드) : 바로 뒤에 있는 노드 * 노드가 하나도 없는 빈 연결 리스트를 생성한다. head는 머리 노드에 대한 참조일 뿐 머리 노드 그 자체가 아니다. 노드가 존재하지 않는 빈 연결리스트는 head가 참조하는 곳이 없으므로 (=참조해야 하는 노드가 존재하지 않으므로) 그 값이 null. - 가장 끝에(꼬리에) 삽입 1. 리스트가 비어 있을 때 : 맨 앞에 노드 삽입하는 것..

    배열 순차 자료구조, 선형 리스트, 다항식의 순차 자료구조

    배열 순차 자료구조, 선형 리스트, 다항식의 순차 자료구조

    선형 리스트 : 자료들 간의 순서를 갖는 리스트. 원소를 나열한 순서 = 원소들의 순서 원소가 하나도 없는 리스트는 공백 리스트라고 하며, 빈 괄호를 사용하여 표현한다. 선형 리스트 원소의 논리적 순서와 같은 순서로 메모리에 저장이 된다. 순차 자료구조의 원소 위치 계산(메모리 주소) 선형리스트가 저장된 시작 위치 : α 원소의 길이 : ι i번째 원소의 위치 = α + (i-1)* ι 1차원 배열은 선형의 형태를 띄고 있어 하나의 인덱스 값을 이용해서 모든 원소에 접근 가능하다. int형 1차원 배열이 있다고 하자. int형은 4byte의 크기를 가진다. 따라서 배열의 인덱스가 하나 증가할 때마다 메모리 주소는 4 byte씩 증가한다. 배열에서 첫번째 원소의 인덱스는 0이고 n번째 원소의 인덱스는 (n..