当前位置: 首页 > news >正文

做美工需要知道的设计网站谷歌浏览器手机版免费官方下载

做美工需要知道的设计网站,谷歌浏览器手机版免费官方下载,珠海房产网,软件开发流程设计本节讲解的队列与栈,如果你对之前的线性和链式结构顺利掌握了,那么下边的队列和栈就小菜一碟了。因为我们会用前两节讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似,队列是先进先出结构(FIFO, first in first out)&…

本节讲解的队列与栈,如果你对之前的线性和链式结构顺利掌握了,那么下边的队列和栈就小菜一碟了。因为我们会用前两节讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似,队列是先进先出结构(FIFO, first in first out), 栈是后进先出结构(LIFO, last in first out)。

一,队列

队列(Queue)是计算机科学中一种基础的数据结构,它遵循先进先出(First In First Out, FIFO)的原则,即最早进入队列的元素也将是最先离开队列的元素。这个概念类似于现实生活中的排队场景,比如在超市结账,先到达收银台的顾客会先完成结账离开。

1.线式队列

线式队列就是线性表+队列性质组成的数据结构

代码实现

class Array():def __init__(self,size):self.__size = sizeself.__item = [None]*sizeself.__length = 0def __setitem__(self,key,value):self.__item[key] = valueself.__length += 1def __getitem__(self, index):return self.__item[index]def __len__(self):return self.__lengthdef __iter__(self):for value in self.__item:yield valueclass Linear_Queue():def __init__(self,size=4):self.size = sizeself.items = Array(size)self.head = 0self.end = 0def push(self,value):self.items[self.head % self.size] = valueself.head += 1def pop(self):temp = self.items[self.end % self.size]self.end += 1return tempif __name__ == '__main__':lq = Linear_Queue()lq.push(11)lq.push(12)lq.push(13)lq.push(14)print(lq.pop())print(lq.pop())print(lq.pop())print(lq.pop())

2.链式队列

链式队列就是链表+队列性质组成的数据结构

代码实现

class Node():def __init__(self,value=None,prev=None,next=None):self.value = valueself.next = nextself.prev = prevdef __str__(self):return "Node:{}".format(self.value)class DoubleLinkedList():def __init__(self):self.size = 0self.root = Node()self.end = Nonedef append(self,value):node = Node(value=value)#无节点if not self.end:self.root.next = node  # root节点指向新节点node.prev = self.root#新节点指向根节点self.end = node#末节点指针指向新节点#有节点else:self.end.next = node#末节点指向新节点node.prev = self.end  # 新节点指向末节点self.end = node#末节点移动到新节点self.size += 1def append_first(self,value):node = Node(value=value)#无节点if not self.end:self.root.next = node  # root节点指向新节点node.prev = self.root  # 新节点指向根节点self.end = node  # 末节点指针指向新节点else:node.prev = self.root#新节点指向根节点temp = self.root.next#保存原来的第一个节点self.root.next = node#将新节点替换为第一个节点node.next = temp#让新节点的下一个节点为原来的第一个节点temp.prev = node#将原来的第一个节点的上一个节点设置为新节点self.size += 1def __iter__(self):current = self.root.nextif current:while current is not self.end:yield currentcurrent = current.nextreturn currentelse:print("LinkedList is empty")#逆向迭代def inverse_iter(self):current = self.endif current:while current is not self.root:yield currentcurrent = current.prevelse:print("LinkedList is empty")def find(self,value):passdef find_count(self,value):passdef remove_first(self):if self.end:temp = self.root.nextself.root.next = temp.nextif temp.next:temp.next.prev = self.rootreturn tempdef remove_all(self,value):passclass Queue():def __init__(self,size=4):self.items = DoubleLinkedList()self.size = sizeself.length = 0def push(self,value):self.items.append(value)self.size += 1def pop(self):if self.length <= 0:returnself.length -= 1return self.items.remove_first()def empty(self):pass

二,栈 

1.双端队列

from collections import deque# 初始化队列
queue = deque()# 入队操作
queue.append(1)
queue.append(2)
queue.append(3)print("初始队列:", queue)# 出队操作
print("出队元素:", queue.popleft())  # 输出并移除队首元素
print("出队后队列:", queue)# 再次入队
queue.append(4)# 查看队列状态
print("当前队列:", queue)
print("队列长度:", len(queue))

根据双端队列的性质可以模仿出栈的效果(先进后出),其实就是 

from collections import deque
d = deque([1,2,3,4])print(d.pop())print(d.pop())print(d.pop())print(d.pop())

输出结果: 4 3 2 1

这就类似栈的性质,但是这里只是用双端了队列模拟的。 

http://www.ritt.cn/news/13146.html

相关文章:

  • ps做网站页面广州百度seo
  • 网站建设开发服务费自己建网站要多少钱
  • 2018网站做外链百度网站搜索排名
  • 交友网站建设策划方案(2)网络推广平台有哪些?
  • 安阳网站开发太原seo全网营销
  • 网站过度优化的表现自己建立网站步骤
  • 如何为旅游网站店铺做推广营销西安网站优化培训
  • win10虚拟目录 做网站站长工具seo综合查询全面解析
  • 东西湖网站建设公司衡水seo优化
  • 网站建设五站合一广告推广语
  • 网页设计模板html代码五四主题广东短视频seo搜索哪家好
  • ui是做网站的吗百度有哪些产品
  • seo网站诊断文档案例抖音推广方式有哪些
  • 新乡网站建设设计网站推广属于哪些
  • 网站上做百度广告赚钱么seo流量排名工具
  • 如何利用网站开发客户百度一下你就知道官网百度
  • 网站建设大赛海报网站设计模板
  • 免费微商城小程序天津seo排名
  • 扁平化设计网站建设app制作一个需要多少钱
  • 南汇北京网站建设网络营销主要做些什么
  • 网站怎么做才不会被墙百度小说排行
  • app下载网址进入优化设计答案六年级上册语文
  • 网站设计模式企业宣传推广怎么做
  • 网站优化关键词关键词查询网址
  • 石狮新站seo搜索优化是什么意思
  • 深圳企业网站建设哪家好宁德市属于哪个省
  • wordpress怎么添加虚拟浏览量黑帽seo培训多少钱
  • 如何获取网站开发语言中央下令全国各地核酸检测
  • 论文中小企业的网站建设网站排行
  • 做羞羞的事的视频网站广告优化师的工作内容