数据结构
文章平均质量分 62
Lora青蛙
主不在乎
展开
-
总结一下一些经典排序算法~(纯纯大白话算法思想 无代码)
文章目录冒泡排序快速排序(1)选择排序插入排序希尔排序归并排序堆排序(1)冒泡排序比较相邻的元素,如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的步骤,从开始第一对到结尾的最后一对。这一步做完后,最后的元素会是最大的数~ (为啥叫冒泡排序,不叫石沉大海排序?)(图片是网上找的,不是原创!它是自动打上了我的水印没法子哇)快速排序(1)快速排序(Quicksort)是对冒泡排序算法的一种改进。快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首先设定一个分界值,通原创 2021-12-22 11:35:46 · 252 阅读 · 0 评论 -
数据结构笔记11 哈夫曼树与哈夫曼编码
哈夫曼树与哈夫曼编码原创 2021-05-27 21:18:55 · 361 阅读 · 1 评论 -
数据结构笔记10 堆
优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。优先队列的完全二叉树表示堆的两个特性结构性:用数组表示的完全二叉树;有序性:任一结点的关键字是其子树所有结点的最大值(或最小值)“最大堆(MaxHeap)”,也称“大顶堆”:最大值“最小堆(MinHeap)”,也称“小顶堆” :最小值堆的抽象数据类型描述类型名称:最大堆(MaxHeap)数据对象集:完全二叉树,每个结点的元素值不小于其子结点的元素值主原创 2021-02-21 11:13:05 · 175 阅读 · 0 评论 -
数据结构笔记9 平衡二叉树(平衡二叉树的概念、平衡二叉树的调整)
什么是平衡二叉树?搜索树结点不同插入次序,将导致不同的深度和平均查找长度ASL。平衡因子(Balance Factor,简称BF): BF(T) = hL-hR,其中hL和hR分别为T的左、右子树的高度。平衡二叉树(Balanced Binary Tree)(AVL树)空树,或者任一结点左、右子树高度差的绝对值不超过1,即|BF(T) |≤ 1。设 nh 高度为h的平衡二叉树的最少结点数。结点数最少时:给定结点数为n的AVL树的最大高度为O(log2n)平衡二叉树的调整1.RR 旋转(右单原创 2020-08-14 23:41:53 · 618 阅读 · 0 评论 -
数据结构笔记8 二叉搜索树(查找、插入、删除)
(笔记总结自浙江大学数据结构MOOC)文章目录二叉搜索树的概念二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除二叉搜索树的概念二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。二叉搜索树操作的特别函数:Position Find( ElementType X, BinTree BST原创 2020-08-14 14:51:45 · 427 阅读 · 0 评论 -
数据结构笔记7 二叉树的遍历(先序遍历 中序遍历 后序遍历 层序遍历)
(笔记总结自浙江大学数据结构)文章目录先序遍历中序遍历后序遍历层序遍历遍历应用例子先序遍历遍历过程为:① 访问根结点;② 先序遍历其左子树; ③ 先序遍历其右子树。void PreOrderTraversal( BinTree BT ) { if( BT ) { printf(“%d”, BT->Data); PreOrderTraversal( BT->Left ); PreOrderTraversal( BT->Right ); } }A(B D F E原创 2020-08-13 14:26:02 · 1867 阅读 · 0 评论 -
数据结构笔记6 二叉树及存储结构
文章目录二叉树的定义二叉树几个重要性质二叉树的抽象数据类型定义二叉树的存储结构二叉树的定义二叉树T:一个有穷的结点集合。这个集合可以为空若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成二叉树具体五种基本形态:二叉树的子树有左右顺序之分:特殊二叉树斜二叉树(Skewed Binary Tree)完美二叉树(Perfect Binary Tree) 又称满二叉树(Full Binary Tree)完全二叉树(Complete Binary Tree)有原创 2020-08-12 23:25:54 · 251 阅读 · 0 评论 -
数据结构笔记5 树与树的表示
(笔记总结自浙江大学数据结构)文章目录引子(顺序查找、二分查找)树的定义树的一些基本术语树的表示引子(顺序查找、二分查找)分层次组织在管理上具有更高的效率。查找是数据管理的基本操作之一,那么如何实现有效率的查找?查找:根据某个给定关键字K ,从集合R中找出关键字与K相同的记录。静态查找:集合中记录是固定的。没有插入和删除操作,只有查找。动态查找:集合中记录是动态变化的。除查找,还可能发生插入和删除。静态查找方法1:顺序查找int SequentialSearch (StaticTable原创 2020-08-11 15:49:32 · 385 阅读 · 0 评论 -
数据结构笔记4 多项式加法运算
算法思路:两个指针P1和P2分别指向这两个多项式第一个结点,不断循环:P1->expon==P2->expon: 系数相加,若结果不为0,则作为结果多项式对应项的系数。同时,P1和P2都分别指向下一项; P1->expon>P2->expon: 将P1的当前项存入结果多项式,并使P1指向下一项; P1->expon< P2->expon: 将P2的当前项存入结果多项式,并使P2指向下一项;当某一多项式处理完时,将另一个多项式的所有结点依次复制到结果多项式中去。原创 2020-08-09 15:18:53 · 323 阅读 · 0 评论 -
数据结构笔记3 队列(队列的顺序存储、链式存储)
队列(Queue):具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除。可进行插入的一端称为队尾(Rear),可进行删除的一端称为队头(Front)。数据插入:入队列(AddQ)数据删除:出队列(DeleteQ)先来先服务先进先出:FIFO原创 2020-08-08 15:42:50 · 1253 阅读 · 0 评论 -
数据结构笔记2 堆栈(堆栈的顺序存储、链式存储、表达式求值)
堆栈的抽象数据类型描述堆栈的顺序存储实现堆栈的链式存储实现堆栈应用:中缀表达式转后缀表达式源代码汇总原创 2020-08-06 14:02:38 · 563 阅读 · 0 评论 -
数据结构笔记1 线性表及其实现(顺序存储结构和链式存储结构)
线性表基本概念、顺序存储主要操作的实现(初始化、查找、插入、删除)、链式存储主要操作的实现(求表长、查找、插入、删除)、源代码汇总原创 2020-08-05 22:50:54 · 803 阅读 · 1 评论