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