会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
在这里, 意淫和实干都值得尊重
阿谋
博客园
首页
新随笔
管理
随笔分类 -
语言--数据结构
数据结构与算法:概述+思维导图
摘要:尊重原创 --> 原文链接 --> 侵权删 还记得这个经典公式吗? 程序=数据结构+算法 可见数据结构和算法对于程序的重要性。 一.数据结构的基本概念 数据结构定义: 数据结构是一种存储和组织数据的方式,以便于访问和修改。数据结构包括数据的逻辑结构、数据的存储结构以及数据的运算,即按照某种逻辑关系组
阅读全文
posted @
2018-05-22 21:39
阿谋
阅读(1392)
评论(0)
推荐(1)
顺序表与单链表的区别及优缺点
摘要:线性表之顺序表与单链表的区别及优缺点 尊重原创 --> 原文链接 --> 侵权删 线性表之顺序表与单链表的区别及优缺点 尊重原创 --> 原文链接 --> 侵权删 这里比较的是基于C语言实现的顺序表与单链表,与其他语言的实现可能会有差异,但我相信语言是相通的,它们的实现机制应该也差不多。 这里比较的
阅读全文
posted @
2018-05-22 21:39
阿谋
阅读(13440)
评论(0)
推荐(1)
单链表与顺序表的对比
摘要:时间复杂度的对比: 操作 链表 顺序表 访问元素 O(n) O(1) 从头部删除元素 O(1) O(n) 从尾部删除元素 O(n) O(1) 在中间插入元素 O(n) O(n) 操作 链表 顺序表 访问元素 O(n) O(1) 从头部删除元素 O(1) O(n) 从尾部删除元素 O(n) O(1)
阅读全文
posted @
2018-05-22 21:38
阿谋
阅读(619)
评论(0)
推荐(0)
顺序表的理解
摘要:顺序表 顺序表的基本形式 传统顺序表: 起始物理地址+逻辑地址(元素下标)*存储单元大小(每一个元素所占用几个字节)=所查找元素的物理地址 即:L0+(n-1)*c得到你想要的元素的物理地址 元素外置顺序表 背景: 存储数据类型不一样,导致存储单元大小不一样, 导致不能使用传统的顺序表来读写数据 元
阅读全文
posted @
2018-05-22 21:37
阿谋
阅读(1276)
评论(0)
推荐(0)
二叉树的实现
摘要:二叉树的实现: 简洁版: class Node(object): def __init__(self, item): self.elem = item self.lchild = None self.rchild = None class Binary_Tree(object): def __ini
阅读全文
posted @
2018-05-19 16:47
阿谋
阅读(341)
评论(0)
推荐(0)
二叉树的遍历
摘要:二叉树的遍历 树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实
阅读全文
posted @
2018-05-18 23:12
阿谋
阅读(191)
评论(0)
推荐(0)
树与树算法
摘要:树的概念: 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个
阅读全文
posted @
2018-05-18 23:12
阿谋
阅读(6363)
评论(0)
推荐(1)
二叉树
摘要:二叉树 二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) 二叉树的性质(特性) 性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点
阅读全文
posted @
2018-05-18 23:12
阿谋
阅读(227)
评论(0)
推荐(0)
实现双端队列
摘要:双端队列[double ended queue]: 描述: __1. 双端队列是一个限定插入和删除操作的数据结构,具有队列和栈的性质。__ __2. 双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。__ __3. 双端队列是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结
阅读全文
posted @
2018-05-03 15:39
阿谋
阅读(1756)
评论(0)
推荐(0)
实现栈
摘要:简洁版: 注释版:
阅读全文
posted @
2018-05-03 13:15
阿谋
阅读(164)
评论(0)
推荐(0)
实现队列
摘要:简洁版: 注释版: 扩展 队列的特性是: 一端存, 一端取 此队列是用python的list实现的 此队列的__两种__实现方式 __1: 头部存 尾部取__ 适用于取操作比较频繁的队列 实现代码: 2: 尾部存 头部取 适用于存操作比较频繁的队列 实现代码:
阅读全文
posted @
2018-05-03 13:09
阿谋
阅读(173)
评论(0)
推荐(0)
栈与队列
摘要:线性表 定义: 零个或多个数据元素的有限序列 线性表_(linear list)_是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列 __是一个有限序列, 元素之间是有顺序的, 若元素存在多个, 第一个元素无前驱, 最后一个元素无后继, 其他每一个元素都只有一个前驱和后继__ 线性表
阅读全文
posted @
2018-05-02 23:42
阿谋
阅读(519)
评论(0)
推荐(0)
单链表
摘要:写给自己看的笔记, 很多坑 1. 创建一个节点类 类内部的 __init__函数,是初始化函数,只要是类的实例对象,就会自动执行__init__函数内部的代码块,也就是说,类的实例对象都会有__init__函数的属性 ex: __node__就是Node类的__实例__对象 该node具有__ele
阅读全文
posted @
2018-05-02 11:22
阿谋
阅读(308)
评论(1)
推荐(1)
单向循环链表
摘要:写给自己看的笔记, 很多坑 标准版 class Node(object): def __init__(self, item): self.elem = item self.next = None class xunhuanLinkList(object): def __init__(self, no
阅读全文
posted @
2018-05-02 11:03
阿谋
阅读(332)
评论(0)
推荐(0)
双链表
摘要:写给自己看的笔记, 很多坑 标准版 class Node(object): def __init__(self, item): self.elem = item self.prev = None self.next = None class TwoLinkList(object): def __in
阅读全文
posted @
2018-04-26 16:30
阿谋
阅读(234)
评论(0)
推荐(0)
公告