Titan笔记

  • 首页
  • Java
  • 数据结构
  • Web
  • C语言
  • Python
  • 杂谈
  • 逸笔挥墨
数据结构
数据结构

[数据结构] 使用最小堆思想实现哈夫曼编解码

哈夫曼树的定义 假设有n个权值,构造有n个叶子结点的二叉树,每个叶子结点的权值是n个权值之一,这样的二叉树可以构造很多棵,其中必有一棵是带权路径长度最小的,这棵二叉树就称为最优二叉树或哈夫曼树。 构建哈夫曼树的方式 假设有7个树(一个节点),其权重分别为1、2、3、4、5、6、7。 找到两个权重最小的树1和2。 1 和2 分别作为新树的左右子树,新树的根结点权重为1 2 =3。剩下的树:3、3、4、5、6、7。 再找到两个最小的树,分别是3和3构成新树,新树权重为6。剩下的树为:6、4、5、6、7。 重复步骤2和3…

2020年4月30日 1条评论 325点热度 8人点赞 阅读全文
数据结构

[数据结构] 稀疏矩阵的存储

【问题描述】 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 【基本要求】 以三元组顺序表表示稀疏矩阵,实现两个矩阵相加、相减的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的矩阵则以通常的阵列形式列出。 【Talk is cheap, show you the code】

2020年4月4日 0条评论 300点热度 4人点赞 阅读全文
数据结构

[数据结构] 平衡二叉查找树 (AVL树)

平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1<=bf<=1; AVL树的作用:   我们知道,对于一般的二叉搜索树(Binary Search Tree),其期望高度(即为一棵平衡树时)为log2n,其各操作的时间复杂度(O(log2n))同时也由此而决定。但是,在某些极端的情况下(如在插入的序列是有序的时),二叉搜索树将退化成近似链或链,此时,其操作的时间复杂度将退化成线性的,即O(n)。我们可以通过随机化建立二叉搜索树来尽量的避免这种情况,但是在进行了多次的操作之后,由于在删除…

2020年3月22日 4条评论 445点热度 6人点赞 阅读全文
数据结构

[数据结构] 括号符的匹配

#include<stdio.h> #include<stdlib.h> // Code by Titan 2020-03-16 // 定义堆栈结构 typedef struct Node *Position; typedef Position Stack; struct Node { char ch; Position next; }; //定义初始化堆栈的操作 Stack initS() { Stack S =(Stack)malloc(sizeof(struct Node)); S-&…

2020年3月21日 0条评论 227点热度 2人点赞 阅读全文
数据结构

[数据结构] 二叉搜索树的CURD(增删改查)操作

介绍 对于二叉搜索树的查找指定元素、查找最大元素、查找最小元素、删除指定元素、插入元素等基础操作。除了删除操作外,基本上都是使用的非递归函数解决。 Code #include<stdio.h> #include<stdlib.h> // 二叉搜索树的各种操作 By Titan typedef struct TNode *Position; typedef Position BinTree; struct TNode { int Data; Position Left; Position Ri…

2020年3月17日 0条评论 312点热度 2人点赞 阅读全文
数据结构

[数据结构]链式存储: 多项式求和

解析: 看完题目和测试数据你或许会和我一样纳闷,题目要求的输出中 序列按指数降序排列,而测试数据中的示例输出却有升序的 有降序的 还有不是升序的也不是降序的。 没错,相信你的直觉,测试数据并不规范!     这里简单讲一下思路:用线性表的链式存储方式先读入输入数据到两个线性表L1 L2中,然后再初始化一个线性表L,比较L1、L2中结点的次数大小,将较大的先插入,相等的合并插入,剩余的连到线性表L的后面即可。具体在addition函数中。 Talk is cheap,show you the co…

2020年3月14日 0条评论 388点热度 8人点赞 阅读全文
数据结构

[数据结构] 二叉树的前序遍历、中序遍历和后序遍历

  二叉树先序遍历 二叉树先序遍历的实现思想是: 访问根节点; 访问当前节点的左子树; 若当前节点无左子树,则访问当前节点的右子树; 二叉树中序遍历 二叉树中序遍历的实现思想是: 访问当前节点的左子树; 访问根节点; 访问当前节点的右子树; 二叉树后序遍历 二叉树后序遍历的实现思想是: 从根节点出发,依次遍历各节点的左右子树, 直到当前节点左右子树遍历完成后,才访问该节点元素。  

2020年3月8日 0条评论 469点热度 2人点赞 阅读全文
C语言

[数据结构] 两个有序线性表的合并

#include<stdio.h> #include<stdlib.h> //构建线性表结构 typedef struct LNode *List; struct LNode{ int data[1000]; int last; }; //生成线性表 List createList(int arr[],int arrLen){ List L= (List)malloc(sizeof(struct LNode)); L->last=0; for(int i=0;i<=arrLen;…

2020年3月7日 1条评论 600点热度 4人点赞 阅读全文
C语言

[数据结构] 队列的链式存储实现

#include<stdio.h> #include<stdlib.h> typedef struct QueueNode *PtrToNode; struct QueueNode { /* 队列中的结点 */ int Data; PtrToNode Next; }; typedef PtrToNode Position; struct QNode { Position Front, Rear; /* 队列的头、尾指针 */ int MaxSize; /* 队列最大容量 */ }; type…

2020年2月29日 0条评论 546点热度 3人点赞 阅读全文
C语言

[数据结构]结构体练习之复数运算

算结构题练习题吧 Talk is cheap,show you the code. #include<stdio.h> #include<math.h> #include<string.h> typedef struct complex{ double real; double virt; }COM; //复数求和的实现函数 COM summation(COM num1,COM num2){ COM result; result.real=num1.real+num2.real;…

2020年2月29日 0条评论 586点热度 3人点赞 阅读全文

Titan

兴趣广泛而无一精擅
想到什么,我总是渴望以代码的方式去呈现
永远年轻,永远热泪盈眶
Stay Hungry, Stay Foolish

逸笔挥墨 - Titan的文学天地
文章分类
  • C语言 (4)
  • Hadoop (1)
  • Hive (3)
  • Java (19)
  • JavaWeb (4)
  • Linux运维之道 (1)
  • Mybatis学习笔记 (3)
  • Python (3)
  • SpringCloud (4)
  • Web (5)
  • Web前端 (4)
  • Web后端 (5)
  • 数据库 (1)
  • 数据结构 (10)
  • 杂谈 (3)
  • 诗词歌赋 (1)
  • 随摘 (2)
最新 热点 随机
最新 热点 随机
Spring Cloud 微服务学习笔记 - 负载均衡服务调用 Spring Cloud 微服务学习笔记 - Eureka 服务注册与发现 Spring Cloud 微服务学习笔记 - IDEA工程搭建 关于我和Titan笔记 Spring Cloud 微服务学习笔记 - 开篇 TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目
Spring Cloud 微服务学习笔记 - 开篇TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目2021年1月随摘2021年1月诗摘关于我和Titan笔记《梦之浮桥》中的几句
提问的智慧 Java 开发环境与IDE 配置与安装教程 [Python] 关于 asyncio 与 aiohttp 协程并发的探索 [数据结构] 使用最小堆思想实现哈夫曼编解码 [PHP框架] ThinkPHP6 介绍、安装及配置 [数据结构] 平衡二叉查找树 (AVL树)
标签聚合
Mybatis学习笔记 Python 数据结构 链式存储 Apache-Hive JavaWeb 二叉树 Java
友情链接
  • Mttblog

COPYRIGHT © 2016 - 2021 Titan笔记. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

豫ICP备20001822号-1

豫公网安备 41010502004418号