栈——用链表实现栈操作
生活随笔
收集整理的這篇文章主要介紹了
栈——用链表实现栈操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、添加一個元素到棧頂
二、彈出棧頂元素
def pop(self)if self.is_empty():print('棧為空')else:value=self.top.dataself.__top=self.__top.nextself._size-=1 return value三、返回棧頂元素
def top(self):if self.is_empty():print('棧頂元素為空')else:return self.__top.data四、判斷棧是否為空
def is_empty(self)return self.__size==0五、判斷棧中數據數量
def size(self):return self.__size代碼塊
class Node:def __init__(self,data,_next=None):self.data=data #數據域self.next=_next #指針域class Stack:def __init__(self):#以鏈表的第一個節點作為棧頂self.__top=None #棧頂元素,self._size=0 #棧內元素個數def push(self, item):# 添加一個元素到棧頂# 讓self.top指向新的節點# 讓新的節點的next指向原本的節點#self.__top = Node(item, self.__top)node=Node(item,self.__top)node.next=self.__topself.__top = nodeself._size+=1def pop(self):# 要判斷棧是否為空if self.is_empty():raise ValueError('棧為空')value=self.__top.data#讓棧頂元素指向下一個節點self.__top=self.__top.nextself._size-=1return valuedef top(self):# 要判斷棧是否為空if self.is_empty():raise ValueError('棧為空')return self.__top.datadef is_empty(self):return self._size == 0#return self.__top == Nonedef size(self):return self._sizeif __name__ == '__main__':stack = Stack()stack.push(1)stack.push(2)stack.push(3)stack.push(4)print(stack.size())print(stack.pop())print(stack.pop())print(stack.pop())print(stack.pop())print(stack.pop())print(stack.is_empty())總結
以上是生活随笔為你收集整理的栈——用链表实现栈操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法—详细讲解单向链表的实现(pytho
- 下一篇: 算法—详细讲解单向循环链表的实现(pyt