电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型

瀏覽:80日期:2022-07-21 14:37:20

模擬棧

Stack() 創(chuàng)建一個(gè)空的新棧。 它不需要參數(shù),并返回一個(gè)空棧。 push(item)將一個(gè)新項(xiàng)添加到棧的頂部。它需要 item 做參數(shù)并不返回任何內(nèi)容。 pop() 從棧中刪除頂部項(xiàng)。它不需要參數(shù)并返回 item 。棧被修改。 peek() 從棧返回頂部項(xiàng),但不會(huì)刪除它。不需要參數(shù)。 不修改棧。 isEmpty() 測試棧是否為空。不需要參數(shù),并返回布爾值。 size() 返回棧中的 item 數(shù)量。不需要參數(shù),并返回一個(gè)整數(shù)。

class Stack(): def __init__(self): self.items = [] def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return len(self.items) - 1 def isEmpty(self): return self.items == [] def size(self): return len(self.items)s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop())print(s.pop())print(s.pop())print(s.isEmpty())

模擬隊(duì)列

Queue() 創(chuàng)建一個(gè)空的新隊(duì)列。 它不需要參數(shù),并返回一個(gè)空隊(duì)列。 enqueue(item) 將新項(xiàng)添加到隊(duì)尾。 它需要 item 作為參數(shù),并不返回任何內(nèi)容。 dequeue() 從隊(duì)首移除項(xiàng)。它不需要參數(shù)并返回 item。 隊(duì)列被修改。 isEmpty() 查看隊(duì)列是否為空。它不需要參數(shù),并返回布爾值。 size() 返回隊(duì)列中的項(xiàng)數(shù)。它不需要參數(shù),并返回一個(gè)整數(shù)。

class Queue(): def __init__(self): self.items = [] def enqueue(self,item): self.items.insert(0,item) def dequeue(self): return self.items.pop() def isEmpty(self): return self.items == [] def size(self): return len(self.items)q = Queue()q.enqueue(1)q.enqueue(2)q.enqueue(3)print(q.dequeue())print(q.dequeue())print(q.dequeue())

案例:燙手山芋

燙手山芋游戲介紹:6個(gè)孩子圍城一個(gè)圈,排列順序孩子們自己指定。第一個(gè)孩子手里有一個(gè)燙手的山芋,需要在計(jì)時(shí)器計(jì)時(shí)1秒后將山芋傳遞給下一個(gè)孩子,依次類推。規(guī)則是,在計(jì)時(shí)器每計(jì)時(shí)7秒時(shí),手里有山芋的孩子退出游戲。該游戲直到剩下一個(gè)孩子時(shí)結(jié)束,最后剩下的孩子獲勝。請使用隊(duì)列實(shí)現(xiàn)該游戲策略,排在第幾個(gè)位置最終會(huì)獲勝。

準(zhǔn)則:隊(duì)頭孩子的手里永遠(yuǎn)要有山芋。

queue = Queue()kids = [’A’,’B’,’C’,’D’,’E’,’F’]#將六個(gè)孩子添加到隊(duì)列中,A是隊(duì)頭位置的孩子for kid in kids: queue.enqueue(kid)while queue.size() > 1: #在7秒之內(nèi)山芋會(huì)被傳遞6次 for i in range(6): kid = queue.dequeue() queue.enqueue(kid) queue.dequeue()print(’獲勝者為:’,queue.dequeue())

模擬雙端隊(duì)列

同同列相比,有兩個(gè)頭部和尾部。可以在雙端進(jìn)行數(shù)據(jù)的插入和刪除,提供了單數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的特性

Deque() 創(chuàng)建一個(gè)空的新deque。它不需要參數(shù),并返回空的deque。 addFront(item) 將一個(gè)新項(xiàng)添加到deque的首部。它需要item參數(shù)并不返回任何內(nèi)容。 addRear(item) 將一個(gè)新項(xiàng)添加到deque的尾部。它需要item參數(shù)并不返回任何內(nèi)容。 removeFront() 從deque中刪除首項(xiàng)。它不需要參數(shù)并返回item。deque被修改。 removeRear() 從deque中刪除尾項(xiàng)。它不需要參數(shù)并返回item。deque被修改。 isEmpty() 測試deque是否為空。它不需要參數(shù),并返回布爾值。 size() 返回deque中的項(xiàng)數(shù)。它不需要參數(shù),并返回一個(gè)整數(shù)。

案例:回文檢查

回文是一個(gè)字符串,讀取首尾相同的字符,例如,radar toot madam。

def isHuiWen(s): ex = True q = Dequeue() # 將字符串的每一個(gè)字符添加到雙端隊(duì)列中 for ch in s: q.addFront(ch) for i in range(len(s) // 2): font = q.removeFront() rear = q.removeRear() if font != rear: ex = False break return ex

模擬鏈表

. is_empty():鏈表是否為空 . length():鏈表長度 . travel():遍歷整個(gè)鏈表 . add(item):鏈表頭部添加元素 . append(item):鏈表尾部添加元素 . insert(pos, item):指定位置添加元素 . remove(item):刪除節(jié)點(diǎn) . search(item):查找節(jié)點(diǎn)是否存在

結(jié)點(diǎn)對象:

class Node(): def __init__(self,item): self.item = item self.next = None

鏈表對象:

class Link(): #構(gòu)建出一個(gè)空的鏈表 def __init__(self): self._head = None #永遠(yuǎn)指向鏈表中的頭節(jié)點(diǎn) #想鏈表的頭部插入節(jié)點(diǎn) def add(self,item): node = Node(item) node.next = self._head self._head = node def travel(self): cur = self._head #鏈表為空則輸出‘鏈表為空’ if self._head == None: print(’鏈表為空!’) while cur: print(cur.item) cur = cur.next def isEmpty(self): return self._head == None def length(self): cur = self._head count = 0 while cur: count += 1 cur = cur.next return count def search(self,item): cur = self._head find = False while cur: if cur.item == item:find = Truebreak cur = cur.next return find def append(self,item): node = Node(item) #鏈表為空的情況 if self._head == None: self._head = node return cur = self._head #頭節(jié)點(diǎn) pre = None #cur的前一個(gè)節(jié)點(diǎn) while cur: pre = cur cur = cur.next pre.next = node def insert(self,pos,item): node = Node(item) if pos < 0 or pos > self.length(): print(’重新給pos賦值!!!’) return cur = self._head pre = None for i in range(pos): pre = cur cur = cur.next pre.next = node node.next = cur def remove(self,item): cur = self._head pre = None if self._head == None:#鏈表為空 print(’鏈表為空,沒有可刪除的節(jié)點(diǎn)!!1’) return #刪除的是第一個(gè)節(jié)點(diǎn)的情況 if self._head.item == item: self._head = self._head.next return #刪除的是非第一個(gè)節(jié)點(diǎn)的情況 while cur: pre = cur cur = cur.next if cur.item == item:pre.next = cur.nextreturn

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 环球周刊网| 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | LOGO设计_品牌设计_VI设计 - 特创易 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 搪玻璃冷凝器_厂家-越宏化工设备 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 儋州在线-儋州招聘找工作、找房子、找对象,儋州综合生活信息门户! | 车辆定位管理系统_汽车GPS系统_车载北斗系统 - 朗致物联 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 万博士范文网-您身边的范文参考网站Vanbs.com | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 |