21/06/14 때 작성했던것
자료구조 및 실습
List - list basic operations
연속적으로 입력되는 데이터를 저장하고자 하는 목적은 array와 마찬가지임.
예를 들어 데이터가 크기 순서대로 배치 되기를 바라는 경우에서 중간에 데이터가 들어와야하는 상황에서 배열은? 중간에 데이터를 삭제해야하는 경우에서는?
Linked lists - chain (한방향)
list elements가 메모리에 임의의 순서로 저장되있다.
새롭게 gat라는 값이 들어오면 원래 가리키고 있던 노드 중 gat의 앞뒤 노드만 포인팅하는 위치를 바꾸어 주면 된다.
node - chain에 저장하고 있는 각각의 것들
각 node가 저장해야 할 데이터가 있고, 그 다음 node를 가리켜야할 potiner를 가지고 있음. first -> list에 대한 pointer 할당된 메모리 안에 데이터 공간과 화살표로 연결을 표시하는 링크 공간
List insertion
1. 이미 노드가 많을 때 중간에 추가
2. 뒤에 연결되는 새로운 노드일 때
50이라는 데이터 값을 가진 노드를 x라고 하는 포인터가 가리키고 잇는 위치에 뒤에다가 데이터를 저장하고 싶을 때
input파라미터가 중요함.
새로운 노드를 입력하려는 그 링크리스트에 첫번째 노드를 가리키고 있는 노드를 가리키고 있음. (리스트 포인터의 포인터)
왜 그 리스트의 첫번째 노드를 가리키고 있는 변수의 주소값을 파라미터로 넘겨 주는 걸까?
1. If 퍼스트가 가리키고 있는 것이 null이 아니면,
2. 리스트의 시작변수가 0이라는 값을 갖고 있다면
List delete
1.중간 노드 삭제
단순히 삭제하고자 하는 노드의 위치값만 알려주는 것이 아니라 삭제하려고 하는 앞에 있는 것을 알려줘야 함. (삭제한 노드 뒤에 있는 것과 앞의 것을 연결 해야하 때문)
Linked Stacks and Queues