数据结构
one_zero_one
这个作者很懒,什么都没留下…
展开
-
二叉树练习
① 96. 不同的二叉搜索树 难度中等1234 给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的二叉搜索树有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3 输出:5 示例 2: 输入:n = 1 输出:1 123456,以3为根节点,左边有2种,右边有3种,总的为2*3 class Solution: def numTrees(self, n: int) -> int: dp=[0]*(n...原创 2021-07-20 22:12:54 · 57 阅读 · 0 评论 -
数据结构之链表
数据结构重点在于存储数据 一顺序表,存储元素的时候可以通过o(1)实现 表头:容量,个数 例如: int类型 4byte(4字节) 32位 数据区:所存放的数据 二链表:节点与节点直接靠链表联系,不需要预定内存。不需要连续的内存,每个节点包含两个域,一个是数据区,链接区 单向链表:链表的方向是单向的,从头指向尾 对于python a=10指的是a的地址指向10 对于c ...原创 2019-07-29 15:55:13 · 298 阅读 · 0 评论 -
链表-----代码实现篇
输出链表的值 # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def printnode(self,node): while node: ...原创 2019-07-30 14:54:57 · 86 阅读 · 0 评论 -
数据结构的基本概念及队列与栈的基本实现
一数据结构的基本概念 1 hash表 ①dict底层结构使用的哈希表 ◆为了支持快速查找使用了哈希表作为底层结构,哈希表的实现原理,底层其实就是一个数组 ◆哈希表平均查找时间复杂度O(1) ◆CPython解释器使用二次探查解决哈希冲突问题 ②list与tuple的区别 ◆都是线性结构,支持下标访问 ◆list是可变对象, tuple不可变(不准确,应该是保存的引用不可变,即你没法...原创 2019-08-03 09:31:16 · 117 阅读 · 0 评论 -
树
一树的术语 1节点的度:子树的个数 A的度为2,B的度为3,M的度为1 2树的度:最大节点的度 B有最大的度:3 3叶子节点:度为0 的节点 K,J,L,O,P 4树的高度或深度:树中节点的最大层次,下图的最大层为5 二叉排序树: (1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值; (2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值; (3)...原创 2019-08-08 15:37:41 · 88 阅读 · 0 评论 -
剑指offer--二叉树镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 ...原创 2019-08-08 22:05:04 · 93 阅读 · 0 评论 -
堆与栈的区别
一、堆 堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指二叉树。所以堆在数据结构中通常可以被看做是一棵树的数组对象。而且堆需要满足一下两个性质: (1)堆中某个节点的值总是不大于或不小于其父节点的值; (2)堆总是一棵完全二叉树。 堆分为两种情况,有最大堆和最小堆。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆常用来实现优先队列,堆的...原创 2019-08-11 12:56:21 · 69 阅读 · 0 评论