![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
py 数据结构 设计模式 leetcode 算法
数据结构的python实现 和 编程案例
鞍-
这个作者很懒,什么都没留下…
展开
-
设计模式06、观察者模式 策略模式
01、观察者模式 --定义: --角色: -- -- -- -- 02、策略模式原创 2021-05-16 18:53:50 · 155 阅读 · 0 评论 -
设计模式05、代理模式 责任链模式
01、代理模式 --定义:为其他对象提供一个代理以控制对这个对象的访问 --应用场景: --远程代理:为远程对象提供的代理 --虚代理:根据需要创建很大的对象 --保护代理:控制对原始对象的访问,用于对象有不同访问权限时(在权限控制上做文章) 例如:django的ORM就是远程代理。手机无图模式:根据需要访问/创建对象[点击图片才进行加载],这就是虚代理。网站角色:不同用户权限不同,这就是保护代理 --角色: --抽象实体(Subject):统一接口 --实体(RealSubject) --代理原创 2021-05-16 18:52:55 · 203 阅读 · 0 评论 -
设计模式04、组合模式 外观模式
01、组合模式 --定义:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性 --角色: --抽象组件(Component) --叶子组件(Leaf) --复合组件(Composite) --客户端(Client) 注:主要特点就是:叶子组件 和 复合组件都有同样的属性和方法,例如:单个组件可以删除、复制、改变形状布局、位置,组合的组件也有类似属性 --适用场景: --表示对象的"整体-部分"层次结构(特别是结构为递归的) --希望用户忽略组原创 2021-05-16 18:52:39 · 188 阅读 · 0 评论 -
设计模式03、建造者模式 适配者模式 桥模式
01、建造者模式 --定义:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示 --角色: --抽象建造者(Builder) --具体建造者(Concrete Builder) --指挥者(Director) --产品(Product) --场景:建造者模式和抽象工厂模式都是为了复杂对象。主要区别在于建造者模式用于一步一步建造一个复杂对象,抽象工厂模式在于一步一步建造一系列复杂对象 --优点: --隐藏了一个产品的内部结构和装配过程 --将构造代码和表示代码分开 --可原创 2021-05-16 17:08:34 · 103 阅读 · 0 评论 -
设计模式02、单例模式 简单工厂 工厂方法 抽象工厂方法
01、单例模式 --单例模式:通过python语法控制使得一个类只能实例化一个实例 --代码示例: class Single(): def __new__(cls, *args, **kwargs): if not hasattr(cls, "_single"): cls._single = super(Single, cls).__new__(cls) return cls._single class Method(Single):原创 2021-05-16 17:07:57 · 170 阅读 · 0 评论 -
设计模式01、设计模式介绍 面向对象设计原则
1原创 2021-05-16 17:07:18 · 82 阅读 · 0 评论 -
数据结构02、链表的实现 和 线性表
01、链表 --链表:按理说应该是在线性表之后,栈和队列之前实现和讲解,这里就不拘泥了 --基本定义:原创 2020-10-05 18:07:04 · 69 阅读 · 0 评论 -
数据结构01、栈的python实现 以及 队列的python实现
1、栈: --栈:数据容器的一种,遵循后进先出原则 [LIFO, Last In First Out] --一般实现:栈可以用顺序表实现,也可以用链表实现。 --栈的初始化: Stack() 创建一个新的空栈,实例化一个对象 --栈的所有属性方法: push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数 class Stac原创 2020-10-05 15:29:08 · 83 阅读 · 0 评论