선형리스트
선형 리스트의 기본
-
선형 리스트의 개념
선형 리스트(Linear List)는 데이터를 일정한 순서로 나열한 자료구조
ex) 좋아하는 순위 = ‘1위:딸기’, ‘2위:바나나’, ‘3위:포도’, ‘4위:사과’, ‘5위:배’
(실제 메모리는 물리적인 순서가 아닌 개념적 순서로 저장된다.)
리스트 = 배열
-
선형 리스트의 원리
(선형 리스트의 데이터 삭제와 삽입)
-
데이터 삽입
선형 리스트에 데이터를 삽입하는 과정 중 2위와 3위 사이에 새로운 데이터인 복숭아를 넣을라고하는데 빈틈이 없다면 맨 끝에 빈칸을 확보한 후 3위부터 5위 자리를 옮겨 3위자리를 비워준 후 복숭아를 삽입한다. -
데이터 삭제
데이터 삭제 후 생기는 빈칸을 선형 리스트는 그대로 두지 않기 때문에 삭제된 데이터 뒤에 있던 데이터들이 앞으로 한 칸씩 이동시킨 후 맨 마지막 빈칸을 제거한다.
선형 리스트의 간단 구현
- 데이터가 5개인 선형 리스트 생성 ```python fruit = [“바나나”, “딸기”, “포도”, “사과”, “감귤”] print(fruit)
#출력 [‘바나나’, ‘딸기’, ‘포도’, ‘사과’, ‘감귤’]
배열은 0번째부터 시작함
2. 데이터 삽입
```python
fruit.append(None) #빈칸 삽입
print(fruit)
#출력
['바나나', '딸기', '포도', '사과', '감귤', None]
fruit[5] = "배" #빈칸에 데이터 삽입
print(fruit)
#출력
['바나나', '딸기', '포도', '사과', '감귤', '배']
- 데이터 중간에 데이터 삽입하기 ```python #1 fruit.append(None) #빈칸 삽입 print(fruit)
#출력 [‘바나나’, ‘딸기’, ‘포도’, ‘사과’, ‘감귤’, ‘배’, None]
```python
#2
fruit[6] = fruit[5] #동일시 하기
fruit[5] = None # 빈칸으로 만들기
print(fruit)
#출력
['바나나', '딸기', '포도', '사과', '감귤', None, '배']
fruit[5] = fruit[4]
fruit[4] = None
fruit[4] = fruit[3]
fruit[3] = None
print(fruit)
#출력
['바나나', '딸기', '포도', None, '사과', '감귤', '배']
fruit[3] = "망고"
print(fruit)
#출력
['바나나', '딸기', '포도', '망고', '사과', '감귤', '배']
- 데이터 삭제 ```python fruit[4] = None fruit[4] = fruit[5] fruit[5] = None fruit[5] = fruit[6] fruit[6] = None
del(fruit[6])
print(fruit)
#출력 [‘바나나’, ‘딸기’, ‘포도’, ‘망고’, None, ‘감귤’, ‘배’] [‘바나나’, ‘딸기’, ‘포도’, ‘망고’, ‘감귤’, None,’배’] [‘바나나’, ‘딸기’, ‘포도’, ‘망고’, ‘감귤’, ‘배’,None] [‘바나나’, ‘딸기’, ‘포도’, ‘망고’, ‘감귤’, ‘배’] ```