데이터 구조 - 단일 체인 시트 의 python 구현

9620 단어
데이터 구조 - 단일 체인 표 python 구현
python 으로 단일 체인 표를 실현 합 니 다.면접 에서 링크 문 제 를 만난 적 이 있 습 니 다. 그 때 는 스스로 링크 를 만들어 야 했 습 니 다. 자신 이 예전 에 보 자마자 알 고 쓰 자마자 끌 어 당 겨 야 한 다 는 것 을 알 게 되 었 습 니 다.그래서 제로 부터 직접 쓰 고 자신의 코드 능력 도 키 워 보 세 요.먼저 링크 를 간단하게 실현 하고 후속 기능 은 계속 추 가 됩 니 다.
  • 아래 는 가장 간단 한 구조 로 하나의 링크 를 만 들 고 while 순환 을 사용 하여 직접 위로 추가
  • class listNode:
        def __init__(self, x):
            self.val = x
            self.next = None
    ##    1-8   ,    
    data = []
    for i in range(1,9):
        data.append(i)
    
    #    ,  1-8
    head = listNode(data[0])
    i, cur = 1, head
    while i < 8:
        node = listNode(data[i])
        cur.next = node
        i += 1
        cur = cur.next
    
    #    
    tmp = head
    while tmp:
        print(tmp.val, end='->')
        tmp = tmp.next
    #   1->2->3->4->5->6->7->8->None
    
  • 이렇게 폭력 적 이 고 직접적 이지 않 으 려 면 좀 더 우아 한 방법 이 있다
  • class listNode:
        def __init__(self, x):
            self.val = x
            self.next = None
    
    class Solution: 
        def getlist(self, list_val):
            if list_val:
                node = listNode(list_val.pop(0))
                node.next = self.getlist(list_val)
                return node
    
    data = [1,2,3,4,5,6]
    #    list,    
    p = Solution().getlist(data)
    
    #    
    cur = p
    while cur != None:
        print(cur.val, end=' ')
        cur =cur.next
    
  • 위 는 모두 구조 링크 일 뿐 아직 기능 이 없다. 아래 는 전체 기능 이 있 는 단일 체인 표 이다. 예 를 들 어 삭제 와 수정 등 이다.
  • class listNode:
        def __init__(self,x):
            self.val = x
            self.next = None
    class SingleLink:
    	def __init__(self, node=None):
    		self.__head = node
    	
    	#      
    	def is_empty(self):
    		return self.__head == None
    	
    	#       
    	def add(self, item):
    		node = listNode(item)
    		node.next = self.__head
    		self.__head = node
    ......    
    

    좋은 웹페이지 즐겨찾기