Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Tire
- SMAPE
- RMES
- n_sample
- Scienceplots
- knn
- 프로그래머스
- Overleaf
- 논문
- 논문editor
- 카카오
- mes
- Python
- 평가지표
- KAKAO
- Mae
- 논문작성
- 파이썬을파이썬답게
- PAPER
- TypeError
- Pycaret
- MAPE
- Alignments
- n_neighbors
- iNT
- mMAPE
- 코테
- python 갯수세기
- 에러해결
- 스택
Archives
- Today
- Total
EunGyeongKim
[데이터 구조 및 분석] Linked List 코드 본문
linked list
- singly linked list
- contruct a sinly linked list with nodes and references
- a node consist of
- a variable to hold a reference to its next node
- a variable to hold a reference to its a value object
- special nodes : head and tail
- you can construct the singly linked list without them
- but, using them makes search, insert and delete more convenient
- generally, requires more coding than array
- a node consist of
- contruct a sinly linked list with nodes and references
class Node:
nodeNext = ''
objValue = ''
binHead = False
binTail = False
def __init__(self, objValue = '', nodeNext = '', binHead = False, binTail = False):
self.nodeNext = nodeNext
self.objValue = objValue
self.binHead = binHead
self.binTail = binTail
def getValue(self):
return self.objValue
def setValue(self, objValue):
self.objValue = objValue
def getNext(self):
return self.nodeNext
def setNext(self, nodeNext):
self.nodeNext = nodeNext
def isHead(self):
return self.binHead
def isTail(self):
return self.binTail
node1 = Node(objValue = 'a')
nodeTail = Node(binTail = True)
nodeHead = Node(binHead = True, nodeNext = node1)
class SinglyLinkedLIst:
nodeHead = ''
nodeTail = ''
size = 0
def __init__(self):
self.nodeTail = Node(binTail = True)
self.nodeHead = Node(binHead = True, nodeNext = self.nodeTail)
def insertAt(self, objInsert, idxInsert):
nodeNew = Node(objValue = objInsert)
nodePrev = self.get(idxInsert - 1)
nodeNext = nodePrev.getNext()
nodePrev.setNext(nodeNew)
nodeNew.setNext(nodeNext)
self.size = self.size+1
def removeAt(self, idxRemove):
nodePrev = self.get(idxRemove -1)
nodeRemove = nodePrev.getNext()
nodeNext = nodeRemove.getNext()
nodePrev.setNext(nodeNext)
self.size = self.size -1
return nodeRemove.getValue()
def get(self, idxRetrieve):
nodeReturn = self.nodeHead
for itr in range(idxRetrieve +1):
nodeReturn = nodeReturn.getNext()
return nodeReturn
def printStatus(self):
nodeCurrent = self.nodeHead
while nodeCurrent.getNext().isTail() == False:
nodeCurrent = nodeCurrent.getNext()
print(nodeCurrent.getValue(), )
print
def getSize(self):
return self.size
list1 = SinglyLinkedLIst()
list1.insertAt('a', 0)
list1.insertAt('b', 1)
list1.insertAt('c', 2)
list1.insertAt('d', 3)
list1.insertAt('e', 4)
list1.insertAt('f', 5)
list1.insertAt('g', 6)
list1.printStatus()
print('--------')
list1.insertAt('cc', 2)
list1.printStatus()
print('--------')
list1.removeAt(3)
list1.printStatus()
'Language > Python' 카테고리의 다른 글
[preprocess] NaN 값 없애기_Python (0) | 2023.02.01 |
---|---|
[Python] 유클리드 호제법 (0) | 2022.09.06 |
[paper] Matplotlib으로 논문용 figure그리기 (1) | 2022.08.10 |
[Python] collection모듈의 counter (0) | 2022.08.09 |
[Python] int 진법 변환 시 에러 (0) | 2022.08.05 |