디시인사이드 갤러리

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

갤러리 본문 영역

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

코드는매일해도어려워갤로그로 이동합니다. 2022.03.03 00:32:29
조회 147 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2863 설문 시세차익 부러워 부동산 보는 눈 배우고 싶은 스타는? 운영자 24/05/27 - -
1356 🔎질문 안녕하세요 쿠팡 중고 박훼 특가 뜨는거 셀리니움으로 해보려하는데요 [8] 나는야집사갤로그로 이동합니다. 22.03.24 156 0
1353 🔎질문 파이썬 씹뉴비인데 이거 어케 함 [6] ㅇㅇ(112.147) 22.03.23 215 0
1352 🔎질문 도와줘 형들.. [5] ㅇㅇ(121.153) 22.03.23 105 0
1351 🔎질문 for loop로 처리할 문자열 바꾸기 가능? [7] ㅇㅇ(75.182) 22.03.22 119 0
1349 🔎질문 터틀 write 명령어 질문있습니다.. [1] oo(218.49) 22.03.21 95 0
1348 🔎질문 파이썬 관련 질문 [3] 사자호랑(112.146) 22.03.21 120 0
1347 일반 파이썬 존나싫다 [21] ㅇㅇ(223.38) 22.03.20 349 0
1346 🔎질문 파이썬은 3차원 배열 어캐함? [2] ㅇㅇ(175.198) 22.03.20 125 0
1344 🔎질문 파이썬으로 체스 딥러닝 만들 수 있나 [2] Naring갤로그로 이동합니다. 22.03.19 146 0
1343 📚정보 패키지 무지성 일괄 업데이트 [2] Coma갤로그로 이동합니다. 22.03.19 138 2
1342 일반 주딱아 죽지마라... [1] ㅇㅇ(118.45) 22.03.18 81 0
1341 🔎질문 파이참 질문 [3] ㅇㅇ(222.113) 22.03.18 170 1
1339 🔎질문 흔들리는 3d 빵디 때리기게임 언제만들어볼수있냐 [1] 키메라(112.148) 22.03.18 93 0
1338 🔎질문 뉴비) 파이참 오류 질문 [1] ㅇㅇ(125.208) 22.03.18 99 0
1337 🔎질문 파이썬 변수 크기제한 없나요? [2] ㅇㅇ갤로그로 이동합니다. 22.03.17 91 0
1336 📚정보 셀레니움 뉴비 반갑노 ㅁㅁㅁㅁㅁ(223.38) 22.03.17 76 1
1335 🔎질문 여기서 뭐가 잘못된건가요..? (개초보) [4] ㅇㅇ(175.205) 22.03.17 119 0
1334 🔎질문 사이트 만들때 매크로 감지 기능 뭐 그런거있을까? [3] gfggvf(39.7) 22.03.17 221 0
1333 🔎질문 형들 str 왜 넣는지 설명좀 해주면 안될까 [2] ㅇㅇ(125.137) 22.03.17 106 0
1332 🔎질문 내자리에서는 되는데.... [5] ㅁㄴㅇㅁㄴㅇ(112.160) 22.03.17 1218 0
1331 🔎질문 파이썬 셀레니움에서 자동로그인할라고 아이디비번 [1] ㅁㄴㅇㅁㄴㅇ(112.160) 22.03.17 93 0
1330 🔎질문 밑에 아이디 비번 느리게 써진다고 했던놈인데 [2] ㅁㄴㅇㅁㄴㅇ(112.160) 22.03.17 70 0
1329 🔎질문 이거 한글로 해석하면 뭐임? [4] ㅇㅇ(125.137) 22.03.16 97 0
1328 🔎질문 파이썬 뉴비 질문좀 ㅠㅠ [7] ㅇㅇ(125.137) 22.03.15 124 0
1327 🔎질문 파이썬 기초기초기초기초 [3] ㅇㅇ(211.44) 22.03.15 218 0
1326 🔎질문 파이썬 수학 반올림 오류 ㅠㅠ 도와주세요 [3] 도메인(124.168) 22.03.14 116 0
1325 🔎질문 아까 밑에 글썼던놈인데 [4] ㅁㄴㅇㅁㄴㅇ(124.50) 22.03.14 101 0
1324 🔎질문 일하는데 있어서 자주 들어가는 사이트 자동로그인 프로그램좀 [5] ㅁㄴㅇㅁㄴㅇ(124.50) 22.03.14 218 0
1323 🔎질문 상속 <-- 이새끼 쓸일 있음? [2] 키메라(1.212) 22.03.14 108 0
1321 🔎질문 형들 pip freeze requirements 했는데 왜 이럼?? [4] ㅇㅇ(14.39) 22.03.12 86 0
1320 🔎질문 코딩 첨 해보는 코린이 질문.. [15] ㅇㅇ갤로그로 이동합니다. 22.03.12 190 0
1319 🔎질문 게임해킹 배우려면 게임만드는법 배우는게 제일 기초 맞노? [3] 키메라(112.148) 22.03.11 141 0
1318 🔎질문 int 함수는 여러개 못받나요?? [1] ㅇㅇ(119.202) 22.03.10 106 0
1317 🔎질문 대체 왜 버그가 나는걸까요.. [6] ㅇㅇ(119.202) 22.03.10 106 0
1316 🔎질문 키워드값이 포함하는 리스트요소를 찾는 알고리즘 질문좀 [2] 초보(39.7) 22.03.08 97 0
1313 일반 우크라이나의 전쟁 승리를 희망합니다 [1] sandlive(223.33) 22.03.07 85 0
1312 🔎질문 파이썬엔 label 같은거 없음? [1] ㅇㅇ(211.219) 22.03.06 113 0
1311 🔎질문 파이썬 내 번호로 문자 발송하기가 가능한가요? [5] ㅇㅇ(49.142) 22.03.05 158 0
1307 🔎질문 sweat 3820 롤러코스터 푸신분 계신가요. 시간 단축 팁이라도 [2] ㅇㅇ(220.122) 22.03.04 101 0
1306 🔎질문 코린이 에러 질문좀 받아주십시오 [1] ㅇㅇ(211.186) 22.03.03 106 0
🔎질문 코린이가 파이썬으로 연결리스트 만들어봤는데 어떤지 평가좀 부탁드립니다. [4] 코드는매일해도어려워갤로그로 이동합니다. 22.03.03 147 0
1304 🔎질문 아나콘다 다운받았는데 idle 가 없고 실행이 안 됨 [2] ㅇㅇ(211.206) 22.03.02 125 0
1303 🔎질문 파이썬 코드 한 줄에서 맨 끝 글자로 가는 법 알려주실 분 [6] ㅇㅇ(211.206) 22.03.02 444 0
1302 🔎질문 어떤 명령어로 하는지만이라도 알려주실 수 있나요 [2] 늒네(123.213) 22.03.02 143 0
1301 🔎질문 웹크롤링 하는데 왜 오류뜨는거지 [4] ㅁㄴㅇ(218.49) 22.03.02 144 0
1299 🔎질문 heapq 기준 tuple[0]만임? ㅇㅇ(211.219) 22.02.28 66 0
1298 🔎질문 파이썬 입문 했는데 왜이렇게 어려움? [4] ㅇㅇ(125.137) 22.02.28 199 0
1296 🔎질문 독학 하고 있는 코린이 입니다. [1] 젤두(112.155) 22.02.27 156 0
1295 일반 UI 너무 짜증나노 키메라(112.148) 22.02.27 78 0
1294 🔎질문 이미지 불러오는데 안됩니다 도와주세요. 알려주세여(183.97) 22.02.25 102 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2