python 데이터 구조의 스 택 구현
스 택 의 데이터 구 조 를 실현 하여 다음 과 같은 방법 을 가지 게 합 니 다. 1. 빈 스 택 을 만 들 고 1. 새로운 요 소 를 추가 합 니 다. 3. 탄 스 택 4. 스 택 정상 요소 5 로 돌아 가 스 택 의 빈 스 택 여 부 를 판단 합 니 다. 6. 스 택 으로 돌아 가 는 요소 갯 수 입 니 다.
방법 1: 배열 실현.
배열 시 뮬 레이 션 스 택 을 사용 할 때 스 택 공간 은 연속 적 인 공간 입 니 다.구체 적 인 사 고 는 배열 의 첫 번 째 요 소 를 스 택 바닥 으로 하고 요소 의 개 수 를 기록 하 며 이 원 리 를 이용 하여 스 택 의 조작 을 쉽게 완성 하 는 것 이다.
소스 코드
class Stack(object):
""" """
def __init__(self):
self.data = []
def isEmpty(self):
""" """
return self.data == []
def peek(self):
""" """
return self.data[len(self.data) - 1]
def size(self):
""" """
return len(self.data)
def push(self, data):
""" """
self.data.append(data)
def pop(self):
""" """
self.data.pop()
if __name__ == '__main__':
#
stack = Stack()
print(stack.size())
print(" 0-10 ")
for i in range(11):
stack.push(i)
print(" :", end=" ")
print(stack.size())
print(" 3 ")
for i in range(3):
stack.pop()
print(" :", end=" ")
print(stack.size())
# ,
while stack.isEmpty() is not True:
print(stack.peek(), end=" ")
stack.pop()
방법 2: 링크 실현
선두 노드 의 링크 를 사용 하여 처음부터 새 노드 를 삽입 하면 스 택 의 생 성 을 완성 할 수 있 습 니 다.
소스 코드
class Node(object):
""" """
def __init__(self,data):
self.data = data
self.next = None
class Stack(object):
""" """
def __init__(self):
self.data = None
self.next = None
def isEmpty(self):
""" """
if self.next is None:
return True
else:
return False
def size(self):
""" """
cur = self.next
i = 0 #
while cur is not None:
i += 1
cur = cur.next
return i
def push(self, data):
""" """
cur = Node(data)
cur.data = data
cur.next = self.next
self.next = cur
def pop(self):
""" """
cur = self.next
if cur is not None:
self.next = cur.next
return cur.data
print(" ")
def peek(self):
""" """
cur = self.next
return cur.data
if __name__ == '__main__':
#
stack = Stack()
print(stack.size())
print(" 0-10 ")
for i in range(11):
stack.push(i)
print(" :", end=" ")
print(stack.size())
print(" 3 ")
for i in range(3):
stack.pop()
print(" :", end=" ")
print(stack.size())
# ,
while stack.isEmpty() is not True:
print(stack.peek(), end=" ")
stack.pop()
다음으로 전송:https://www.cnblogs.com/tianyb/p/10986769.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.