# 코딩 : UTF-8
클래스 노드 (객체) :
"" "節點0" ""
데프 __init __ (자기, ELEM) :
self.elem = ELEM의
self.next = 없음
# = 없음 노드 (100)
클래스 SingleLinkList (개체)
"" "單鏈表" ""
DEF __init __ (자기 노드 = 없음) :
자기 헤드 .__ = 노드
데프 is_empty (자기) :
"" "鏈表是否爲空" ""
돌아가 자기 .__ 머리 == 없음
길이 DEF (자기) :
"" "체인 길이" ""
# CUR 공원은 모바일 노드 통과에 대한 여행
CUR을 = 자기 .__ 머리
# 레코드 번호 카운트
COUNT = 0
:! 그동안 CUR = 없음
+ = COUNT 1.
CUR = CUR 다음 내용
COUNT를 반환
데프 (자동) 여행 :
"" "遍歷整個鏈表" ""
똥개 = 자기 .__ 머리를
하는 동안 CUR = 없음!
인쇄 (cur.elem, 끝 = "")
CUR = cur.next
인쇄 ( "")
추가 DEF (자기, 상품) :
"" "첨가제 요소리스트 헤더, 제 보간법" ""
노드 = 노드 (아이템)
헤드 node.next .__ = 자동
셀프 .__ 헤드 노드 =
의 append DEF (자체, 항목) :
"" "첨가제 요소 목록 꼬리, 꼬리 보간" ""
노드 = 노드 (항목)
: self.is_empty ()에 묻 으면
자기 .__ = 노드가 머리
다른 :
CUR = 자기가 .__ 머리
그동안 CUR을 다음 내용 :! = 없음
CUR = cur.next를
노드 cur.next =
INSERT DEF (자기, POS, 상품) :
"" "첨가 원소 지정된 위치
: 0 PARAM 볼때
" ""
POS IF <= 0
self.add (아이템)
ELIF의 POS> (self.length () - 1). :
self.append (아이템)
다른 :
프리 = 자기 .__ 헤드
COUNT = 0
그동안 COUNT <(POS 1)
. COUNT = + 1
프리 = pre.next
# 때 위치 루프가 종료 사전 POS 1 포인트
노드 = 노드 (아이템)
node.next = pre.next
pre.next 노드 =
DEF (자체, 항목)를 제거합니다 :
"" "노드 삭제" ""
CUR 머리를 .__ = 자기
전 = 없음
그동안 CUR = 없음 :!
IF cur.elem == 항목 :
# 첫 번째 노드가 헤드 노드의 여부를 결정
# 헤드 노드
== 자기 .__ 머리 CUR 경우 :
자기 헤드가 .__ cur.next =
그렇지 않으면 :
pre.next = cur.next
BREAK
그렇지 않으면 :
사전 = CUR
CUR = cur.next
데프 (자체, 항목) 검색 :
"" "查找節點是否存在" ""
똥개 = 자기 .__ 머리를
CUR = 없음 동안!
cur.elem == 항목이있는 경우 :
True를 반환
다른 :
CUR을 = cur.next
False를 반환하지
경우 __name__ == "__main__":
LL = SingleLinkList ()
인쇄 (ll.is_empty ())
인쇄 (ll.length ())
ll.append (1)
인쇄 (ll.is_empty ())
인쇄 (ll.length ())
ll.append (2)
ll.add (8)
ll.append (3)
ll.append (4)
ll.append (5)
ll.append (6)
# 8 1 2 3 4 5 6
ll.insert (-1 9) 8 # 9 123456
ll.travel ()
ll.insert (3, 100) # 1 100 9 8 2 3456
ll.travel ()
ll.insert (10, 200) # 9 8 1 100 200 23456
ll.travel ()
ll.remove (100)
ll.travel ()
ll.remove (9)
ll.travel ()
ll.remove (200)
ll.travel ()
최종 결과는 보여