日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python list是数组还是链表实现的_python 数据结构 list和链表实现栈的三种方法

發布時間:2024/7/23 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python list是数组还是链表实现的_python 数据结构 list和链表实现栈的三种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MAX_SIZE = 100

classMyStack1(object):"""模擬棧"""

def __init__(self):

self.items=[]

self.size=0defis_empty(self):"""判斷是否為空"""

return self.size ==0defsize(self):"""返回棧的大小"""

returnself.sizedefpush(self, item):"""壓棧(加入元素)"""self.items.append(item)

self.size+= 1

defpop(self):"""彈棧(彈出元素)"""

if self.size < MAX_SIZE and self.size >=0:

self.size-= 1

returnself.items.pop()else:print("棧已經為空")returnNonedefpeek(self):if notself.is_empty():return self.items[self.size-1]else:returnNonedef __str__(self):returnstr(self.items)classMyStack2(object):"""模擬棧"""

def __init__(self):

self.items=[]

self.size=0defis_empty(self):"""判斷是否為空"""

return self.size ==0defsize(self):"""返回棧的大小"""

if self.size <=MAX_SIZE:returnself.sizedefpush(self, item):"""壓棧(加入元素)"""

if self.size <=MAX_SIZE:

self.items.insert(0, item)

self.size+= 1

defpop(self):"""彈棧(彈出元素)"""

if self.size > 0 and self.size <=MAX_SIZE:

self.size-= 1

returnself.items.pop(0)else:print("棧已經為空")returnNonedefpeek(self):"""返回棧頂元素"""

if notself.is_empty():returnself.items[0]else:returnNonedef __str__(self):returnstr(self.items)classNode():def __init__(self, data, next=None):

self.data=data

self.next=nextdef __repr__(self):returnstr(self.data)classNodeStack():def __init__(self):

self.node=Node(None)

self.head=self.node

self.size=0defis_empty(self):return self.size ==0defget_size(self):returnself.sizedefpush(self, data):

node=Node(data)

node.next=self.head.next

self.head.next=node

self.size+= 1

defpop(self):if notself.is_empty():

current=self.head.nextif self.get_size() == 1:

self.head.next=Noneelse:

self.head.next=self.head.next.next

self.size-= 1

returncurrent.dataelse:raise IndexError('pop from a empty stack')defpeek(self):if notself.is_empty():returnself.head.next.dataelse:raise IndexError('stack is empty')def __repr__(self):

stack_list=[]

current=self.headwhile current.next is notNone:

stack_list.append(current.next.data)

current=current.nextreturnstr(stack_list)__str__ = __repr__

deftest(obj):

i=obj()for x in range(0,6):

i.push(x)print(i)

i.pop()print(i, i.peek(), i.size)if __name__ == "__main__":

test(MyStack1)

test(MyStack2)

test(NodeStack)

總結

以上是生活随笔為你收集整理的python list是数组还是链表实现的_python 数据结构 list和链表实现栈的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。