디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🔎질문] 코린이가 파이썬으로 연결리스트 만들어봤는데 어떤지 평가좀 부탁드립니다.

코드는매일해도어려워갤로그로 이동합니다. 2022.03.03 00:32:29
조회 160 추천 0 댓글 4
														

제가 각종 상황에서 돌려보았을 때는 문제는 일단 없었습니다.

이 부분을 고치면 좋을 것 같다 등등 가감없는 지적 부탁드립니다.

class Node:
    """node 생성"""
    def __init__(self, data):
        self.data = data
        self.next = None


class LinkedList:
    """연결 리스트"""
    def __init__(self):
        """연결 리스트는 head tail로 구성"""
        self.head = None # 처음에는 아무것도 없으니 None이다. 연결 리스트의 맨 앞
        self.tail = None # 처음에는 아무것도 없으니 None이다. 연결 리스트의 맨 뒤

    def append_link(self, data):
        """연결 리스트 뒤에 노드 추가하기"""
        new_node = Node(data)

        if self.head is None: # 연결 리스트가 비어있는 경우
            self.head = new_node
            self.tail = new_node
        else: # 연결 리스트가 있는 경우
            self.tail.next = new_node
            self.tail = new_node

    def find_node(self, index):
        """노드에 접근하기"""
        iterator = self.head
        for _ in range(index): # 찾고 싶은 인덱스의 위치까지만 반복을 하면 그 노드로 갈 수 있다. 순서대로 연결되어 있으니까!
            iterator = iterator.next
        return iterator

    def insert_link(self, index, data):
        """연결 리스트의 원하는 위치에 삽입하기"""
        new_node = Node(data)
        iterator =
self.head
        if index == 0: # 0번째에 삽입한다면?
            self.head = new_node
            self.head.next = iterator
        else: # 그 외의 경우
            for _ in range(index-1):
                iterator = iterator.next

            new_node.next = iterator.next
            iterator.next = new_node

    def delete_link(self, index):
        """연결리스트 노드 삭제"""
        iterator = self.head
        if self.head is self.tail: # 만약에 연결 리스트에 원소가 한 개 라면?
            self.head = None
            self.tail = None
        elif index == 0: # 원소가 여러 개인 연결 리스트에서 0번째를 지우고 싶다면?
            self.head = iterator.next
        else: # 나머지 경우
            for _ in range(index-1):
                iterator = iterator.next
            if iterator is self.tail: # 맨 끝을 지우고 싶으면?
                self.tail.next = None
            else: # 중간을 지우고 싶다면?
                iterator.next = iterator.next.next

    def __str__(self):
        """연결 리스트 출력"""
        iterator = self.head
        result =
""
        while iterator is not None:
            result +=
f"{iterator.data} "
            iterator = iterator.next # 다음 노드로 넘어감
        return result


my_linked_list = LinkedList()
my_linked_list.append_link(
1)
# my_linked_list.append_link(2)
# my_linked_list.append_link(3)
# my_linked_list.append_link(4)
# my_linked_list.append_link(5)
# my_linked_list.append_link(6)

# print(my_linked_list)
# print(my_linked_list.find_node(0).data)

# my_linked_list.insert_link(6, 100)
# print(my_linked_list)
print(my_linked_list)
my_linked_list.delete_link(
0)
print(my_linked_list)




추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
- AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
1437 🔎질문 jupyter notebook 먹통문제 [3] ㅇㅇ(124.54) 22.04.10 146 0
1436 🔎질문 파이썬 초보 질문입니다. [5] ㅇㅇ(222.116) 22.04.10 338 0
1434 🔎질문 vscode 설정 질문 [2] ㅊㅊ(222.113) 22.04.10 231 0
1430 🔎질문 파이썬 뉴비 질문드려요 [2] ㅇㅇ(110.11) 22.04.09 218 0
1429 🔎질문 딕셔너리 질문점 [5] ㅇㅇ(121.144) 22.04.09 115 0
1428 📚정보 오늘의 할일 [2] 사밀갤로그로 이동합니다. 22.04.09 139 1
1427 🔎질문 소수 존나빨리찾기문제 풀다 궁금해짐 [5] 키메라(112.148) 22.04.09 172 0
1426 🔎질문 재귀 함수 질문 드려요. [9] 무식(49.172) 22.04.08 194 0
1425 🔎질문 남 알려주려다가 뭔가 내가 잘 못 이해한 거 있는데 물어봐도 됨? [2] 사밀(14.39) 22.04.08 125 0
1424 🔎질문 리스트끼리 중복되는 값 제거하는 문제 사밀(14.39) 22.04.08 114 0
1423 🔎질문 쌉고수 형님들 재귀함수 좀 도와주십쇼 [5] ㅇㅇ(222.113) 22.04.08 128 0
1422 🔎질문 파이썬 잘하는 사람? [6] ㅇㅇ(121.144) 22.04.08 157 0
1420 🔎질문 오름차순으로 정리하기해야하는데 뭐가 잘못됏는지 알려주실분... [2] ㅇㅇ(49.142) 22.04.08 102 0
1417 일반 통계적으로 감소 또는 증가하고 있는 '추세'라고 [2] 사밀갤로그로 이동합니다. 22.04.07 131 0
1416 일반 이번주 주말에 할 일 박제 사밀갤로그로 이동합니다. 22.04.07 190 0
1414 🔎질문 파이썬 큰수처리어케하노? [4] 키메라(211.36) 22.04.06 137 0
1412 🔎질문 고수님들 도와주세요 [5] ㅇㅇ(223.33) 22.04.06 145 0
1411 🔎질문 파이썬 엑셀데이터를 웹에 입력 하고싶은데 [6] sexoxl갤로그로 이동합니다. 22.04.06 141 0
1409 🔎질문 파이썬은 대체 얼마나 느린거노 [4] 키메라(112.148) 22.04.05 186 0
1408 🔎질문 근데 쥬피터 왜쓰냐? [7] 라댜갤로그로 이동합니다. 22.04.05 888 0
1407 🔎질문 형님들아 나 도움 좀 [4] ㅇㅇ(124.49) 22.04.05 151 0
1406 일반 파이썬 코테 스터디 빡세게 할 사람 [3] ㅇㅇ(203.251) 22.04.05 166 0
1405 🔎질문 무개념이 질문 좀 함 [8] ㅇㅇ(121.176) 22.04.04 156 0
1404 🔎질문 질문점 [12] ㅇㅇ(121.144) 22.04.04 152 0
1402 🔎질문 캡챠는 역시 딥러닝밖에 답이 없나 [8] ㅇㅇ(121.170) 22.04.03 297 0
1398 🔎질문 텐서플로우 신경망 질문 (아래 글은 무시) [8] ㅇㅇ(124.54) 22.04.02 203 0
1397 🔎질문 텐서플로우 신경망 질문있습니다 [1] ㅇㅇ(124.54) 22.04.02 119 0
1394 🔎질문 pen down을 먼저해봄 [17] ㅇㅇ(49.142) 22.04.01 190 0
1393 🔎질문 학식충 과제 질문좀 [36] ㅇㅇ(49.142) 22.04.01 270 0
1392 일반 파이썬 존나 잘하고 싶어서 입갤함 [3] ㅇㅇ(39.7) 22.04.01 206 0
1391 🔎질문 나 좀 도와주라 [5] ㅇㅇ(222.113) 22.04.01 172 0
1389 🔎질문 파이썬 스케쥴 문제 아는 사람? [4] ㅋㅋ(112.173) 22.04.01 139 0
1388 🔎질문 물체 이동한 거리 도출하려고 하는데 [8] ㅇㅇ(175.203) 22.04.01 142 0
1387 🔎질문 이거 난이도 어려운편인가? [4] ㅇㅇ(220.116) 22.03.31 275 0
1386 🔎질문 가끔 주피터노트북으로 run 하는데 ㅁㅁㅁㅁㅁ(223.38) 22.03.31 121 0
1385 🔎질문 파이썬 방정식 해 구하기 오류 [2] ㅇㅇ(222.234) 22.03.31 132 0
1384 일반 대학가면 파이썬 강제로 시키노? ㅋㅋ [5] 키메라(112.148) 22.03.30 213 1
1383 🔎질문 메뉴 고르는 거 이렇게 하는 거 맞아? [2] ㅇㅇ(14.39) 22.03.30 119 0
1382 일반 과제 질문 같은 거 많이 올라오면 솔직히 좋음 사밀갤로그로 이동합니다. 22.03.30 128 1
1381 일반 ㅋㅋㅋ ㅅㅂ 개강해서 그러냐? [2] 라댜갤로그로 이동합니다. 22.03.30 130 2
1380 🔎질문 도와주세요...! [2] ㅇㅇ(211.57) 22.03.30 121 0
1378 🔎질문 파이썬 초보입니다 [13] ㅇㅇ(211.57) 22.03.30 319 0
1377 🔎질문 [점프투파이썬]님들 이거살때 ebook으로삼 아님 종이로 삼? [5] ㅇㅇ갤로그로 이동합니다. 22.03.30 263 0
1376 💡답변 DataFrame에서 분산이 0인 컬럼 이름을 반환 [1] 사밀(14.39) 22.03.29 107 0
1375 🔎질문 형들 질문좀요.. [6] ㅇㅇ(221.138) 22.03.29 131 0
1374 🔎질문 헬로우 월드에서 부터 막혀요 이거 왜이래요 씨빠꺼 쎅쓰... [24] ㅇㅇ(121.148) 22.03.29 209 0
1373 💡답변 섹스 [2] 키메라(112.148) 22.03.29 125 0
1372 🔎질문 파이썬 코드질문(재질문) [13] ㅇㅇ(220.67) 22.03.29 191 0
1371 🔎질문 이걋좀 알려줄사람 [3] ㅇㅇ(180.224) 22.03.29 138 0
1370 🔎질문 파이썬 코드 질문.. [1] ㅇㅇ(220.67) 22.03.29 151 0
뉴스 정선희, 결혼 1년 만에 남편 사별 후 음모론과 비난으로 고통스러운 시간...17년 만에 심경 고백 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2