数据结构与算法
关于python的各种算法
黑色小米粥
这个作者很懒,什么都没留下…
展开
-
嵌套字典遍历取值,并得到值的键路径
嵌套字典遍历取值,并得到值的键路径原创 2022-09-08 11:03:08 · 271 阅读 · 0 评论 -
非常详细的二叉树图文介绍,简单易懂!!!
数据结构系列的文章我们之前已经说过数组,链表,哈希表以及队列等等,上一篇也简单的介绍下了树的概念,从今天开始,我们就进入二叉树的学习,这可是面试官最喜欢的问题之一,务必掌握牢固哦!回顾树的那些事在介绍二叉树之前,我们有必要再来看看关于树的一些关键性概念,毕竟,二叉树也是树嘛。我们首先应该了解的就是树这种数据结构属于非线性结构,然后存储的数据具有一对多的关系,这是最最基本的概念了。几个概念名词要分清 然后我们需要清楚关于树的一个关键性的概念名词。节点:什么是节点呢?这...转载 2020-07-02 15:29:38 · 4708 阅读 · 0 评论 -
python3 实现栈和队列
关于栈和队列的讲解可以参考:数据结构-知识点栈和队列1. 栈1.1 基于链式存储的栈结构# 基于链式存储的栈结构# 自定义节点结构class Node: def __init__(self, data=None): self.data = data self.next = None# 链式栈class LStack: # 构建空栈 - 空节点 def __init__(self): self._head = Node原创 2020-07-02 16:13:40 · 939 阅读 · 0 评论 -
数据结构-知识点栈和队列
1 栈1.1 栈的基本概念栈:受约束的线性表,只允许栈顶元素入栈和出栈。1.2 栈的实现存储:顺序栈 链式栈操作: 入栈:先判栈满,elements[++top] = x; 出栈:先判栈空,x = elements[top—]; 判栈空:top=-1; 判栈满:top = maxsize - 1;双栈共享一个栈空间两个栈共享一个数组空间V[maxSize]设立栈顶指针数组 t[2] 和栈底指针数组 b[2]初始 t[0] = b[0] = -1, t[1] = b[1].转载 2020-07-02 16:05:42 · 207 阅读 · 0 评论 -
python 实现单向链表和双向链表
1. 单向链表的实现详细的链表讲解请参考:https://blog.csdn.net/weixin_42881588/article/details/107085047# 单向链表的实现# 链表节点class Node: # 构造函数 # 通过传入数据构造新节点 # 默认下一链接域为空,none def __init__(self, elem): self._elem = elem self._next = None# 链表类class SLin原创 2020-07-02 15:55:15 · 358 阅读 · 2 评论 -
链表
代码参考: 链表的概念 链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构是多式多样的,当时通常用的也就是两种: 无头单向非循环列表:结构简单,一般不会单独用来存放数据。实际中更多是作为其他数据结构的子结构,比如说哈希桶等等。 带头双向循环链表:结构最复杂,一般单独存储数据。实际中经常使用的链表数据结构,都是带头双向循环链表。这个结构虽然复杂,但是使用代码实现后会发现这个结构会带来很多转载 2020-07-02 15:51:00 · 113 阅读 · 0 评论 -
python 实现二叉树
看代码之前可以先看一下这篇文章以便更容易理解:https://blog.csdn.net/weixin_42881588/article/details/107085047# 二叉树的实现# 二叉树结点类class TreeNode: def __init__(self, data=None, left=None, right=None): self.elem = data self.l_child = left self.r_child =原创 2020-07-02 15:31:14 · 135 阅读 · 0 评论 -
Python实现顺序查找和二分查找
一、顺序查找# 顺序查找(线性查找)示例def linear_search(data, key): lens = len(data) for i in range(lens): if data[i] == key: return i return -1if __name__ == '__main__': values = [10, 34, 56, 9, 12, 3, 76, 45, 99, 84, 25, 67]原创 2020-07-02 14:49:06 · 758 阅读 · 0 评论 -
python实现冒泡、插入、快速排序三种基础排序算法
一、冒泡排序# coding=utf-8# 冒泡排序算法# 简单实现def bubble(data): for n in range(len(data)-1): for i in range(len(data)-1-n): if data[i] > data[i+1]: data[i], data[i+1] = data[i+1], data[i]# 自测代码if __name__ == '__main原创 2020-07-02 14:37:59 · 210 阅读 · 0 评论