###단축키
new_list = old_list | 주소의 복사, 얕은 복사 | |
new_list = old_list[:] | 슬라이싱, 깊은 복사 | |
new_list = [] new_list.extend(old_list) |
extend() : 리스트를 추가하는 함수 깊은 복사 | |
new_list = list(old_list) | list(), 깊은 복사 | |
import copy new_list = copy.copy(old_list) |
copy 활용, 깊은 복사 | |
new_list = [i for i in old_list] | 리시트 함축, 깊은 복사 | |
import copy new_list = copy.deepcopy(old_list) |
리시트원소까지도 깊은 복사 가장느림 |
|
addtoFirst() | 연결 리스트의 앞쪽에 원소를 추가하는 연산 | |
addtoLast() | 연결 리스트의 뒤쪽에 원소를 추가하는 연산 | |
add() | 연결 리스트의 특정 위치에 원소를 추가하는 연산 | |
delete() | 연결 리스트의 특정 위치에 있는 원소를 삭제하는 연산 | |
get() | 연결 리스트의 특정 위치에 있는 원소를 리턴하는 연산 |
### 첫노드 삭제 알고리즘
def deleteFirst():
global Head
if Head == None:
print('error')
else:
Head = Head.link
# 노드삭제알고리즘
def delete(pre):
if pre == None or pre.link == None:
print('error')
else:
pre.link = pre.link.link
# 분활과정의 알고리즘
def merge_sort(m):
if len(m) <= 1:
return m
mid = len(m) //2
left = m[:mid]
right = m[mid:]
left = merge_sort(left)
right = merge_sort(right)
return merge(left,right)
# 병합과정의 알고리즘
def merge(left, right):
result = []
while len(left) > 0 and len(right) > 0 :
if left[0] <= right[0] :
result.append(left.pop(0))
else :
result.append(right.pop(0))
if len(left) > 0 :
result.extent(left)
if len(right) > 0 :
result.extend(right)
return result
# push / pop 연산의 알고리즘
def push(i):
global top
top = Node(i, top)
def pop():
global top
if top == None:
print("error")
else:
data = top.data
top = top.link
return data
'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글
Queue 에대하여 (0) | 2020.04.22 |
---|---|
SW 분할 정복 (0) | 2020.04.19 |
SW 백트래킹 미로찾기 (0) | 2020.04.19 |
SW 계산방법 (0) | 2020.04.19 |
트리구조의 모든 집합 구하기 시프트 활용 (0) | 2020.04.09 |