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

网站上面的水印怎么做的太原网站建设谁家好

网站上面的水印怎么做的,太原网站建设谁家好,做服务型党员网站,wordpress启用silder本节讲解的队列与栈,如果你对之前的线性和链式结构顺利掌握了,那么下边的队列和栈就小菜一碟了。因为我们会用前两节讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似,队列是先进先出结构(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.ds6.com.cn/news/4897.html

相关文章:

  • 网站建设公司成都长尾关键词挖掘熊猫
  • 有模板怎么做网站湖南靠谱的关键词优化
  • 南昌做网站的公司多不多百度关键词排名批量查询工具
  • 高端网站建设公司费用首页关键词优化公司
  • 免费个人logo设计网站天津百度seo排名优化
  • 学习网站 现状网络推广培训班
  • 吴桥县网站建设东莞seo关键词
  • 宁波网站建设招商加盟360站长
  • cms做网站可以做些什么网站广州:推动优化防控措施落
  • 容桂商城网站建设关键词搜索指数
  • 对网站建设课程的心得体会制作网站的app
  • dede网站模板客wordpress企业网站模板
  • 如何对上传的网站做代码修改市场推广
  • 淮南做网站公司飞猪关键词排名优化
  • 我做微信淘宝客网站有哪些seo优化排名易下拉用法
  • 社保网站做员工用工备案抖音引流推广怎么做
  • wordpress 文章列表 css样式seo优化易下拉排名
  • 婚礼做的好的婚庆公司网站中山seo
  • 唐山百度搜索排名优化哈尔滨seo关键词
  • 老牌网站建设怎样才能注册自己的网站
  • wordpress标签分类外包优化网站
  • 如何进行网站性能优化?苏州百度
  • 怎么查公司网站有没有被收录微信app小程序开发
  • thinkphp做企业网站网站关键词快速排名服务
  • 网站备案能不能出现世界什么叫外链
  • 宁波网站建设-中国互联百度客服中心人工在线咨询
  • angular2是做网站的还是手机的推广资源网
  • 汉中网站建设推广今天特大新闻
  • 企业网站建设三个原则seo整站优化外包
  • 长沙电子商务网站建设网络营销渠道类型有哪些