自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 赫夫曼树和n皇后

若将树中结点赋给一个带有某种含义的数值,则该数值称为该结点的权。从根结点到该结点之间的路径长度与该结点的权的乘积,称为该结点的带权路径长度。如图,叶子结点I的带权路径长度为 3 × 3 = 9给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,则称该二叉树为哈夫曼树,也被称为最优二叉树。根据树的带权路径长度的计算规则,我们不难理解:树的带权路径长度与其叶子结点的分布有关。即便是两棵结构相同的二叉树,也会因为其叶子结点的分布不同,而导致两棵二叉树的带权路径长度不.

2022-05-30 01:18:14 279

原创 链队列和循环队列

队列是一种先进先出(FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。队列的结构图如下所示:明白了队列之后,链队列就非常简单了,用链表表示的队列就简称为链队列。一个链队列显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能惟一确定。图片转载//链队列结构定义//链队列节点typedef struct LinkNode{ int data; struct LinkNode* next;}

2022-05-17 20:10:25 789

原创 栈的应用:递归

递归通过函数本身的重复调用,能够减少代码量,以大化小、一。累加#include <stdio.h> int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n", paraN); if (paraN <= 0) { printf(" return 0\r\n"); return 0; } else { tempSum..

2022-05-13 01:22:15 550

原创 栈的应用---表达式求值

表达式求值是栈的一个重要的应用。例如计算器中的加减乘除表达式的计算,都会使用栈来进行求值。表达式的表示方法主要有中缀表示法和后缀表示法。中缀表示法:操作符号处于两个操作数的中间例如3+4,中缀表达式是符合人们思维的算术表达式方法,中缀表达式通常包含圆括号和方括号。中缀表达式不容易被计算机所理解,因此不太方便使用其进行表达式求值。后缀表达式的例子21+3*,它 对应中缀表达式为(2+1)*3, 中缀表示的例子 1 +3 * (4 + 5)后缀表达式:不包含括号,运算符号放在两个运算对象的后面,所

2022-05-11 22:59:59 360

原创 栈和括号匹配

栈是一种符合先进后出原则的数据结构主要操作氛围进栈和弹栈。规则是栈顶元素先弹出而后进栈,进栈就是一个新的元素取代原本的栈顶元素。栈可以用来进行最基本的括号匹配操作,栈的图示为:(转载)具体代码如下//定义栈typedef struct zhan{ int top; int data[max_size];}*zhanptr; //of typedef //输出栈void outputzhan(zhanp

2022-05-11 22:48:32 1216

原创 数据结构06--多项式加法

第一步创建链表LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tempHeader->exponent = 0; tempHeader->next = NULL; return tempHeader;}//of initLinkList第二步,初始化链表。LinkList

2022-05-06 11:34:26 75

原创 数据结构04--静态链表

上课学到,静态链表有助于我们对内存的理解。逻辑结构上相邻的数据元素,存储在指定的一块内存空间中,数据元素只允许在这块内存空间中随机存放,这样的存储结构生成的链表称为静态链表。也就是说静态链表是用数组来实现链式存储结构,目的是方便在不设指针类型的高级程序设计语言中使用链式结构。它的优点是和动态链表一样,删除和插入元素时间复杂度低;不足是和数组一样,需要提前分配一块较大的空间。静态链表的存储地址是虚拟地址,是连续的地址而单链表的地址并不一定是连续的,是操作系统指定的并且可以延申。创建节点typ

2022-05-03 18:46:46 273 1

原创 数据结构03--双向链表

双向链表与单链表的区别在于,双链表每个节点具有两个指针,分别指向节点的直接前驱和后继,因此双向链表可以两个方向遍历,在增加、删除等操作中,双向链表需要操作更多的指针指向。结构:typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;}DLNode,*DLNodePtr;可以看到包含一个数据域,一个头指针和一个尾指针创建头

2022-05-03 18:37:28 638 2

原创 数据结构03-双向链表

双向链表是另一种形式的链表,与单链表不同,双向链表的节点具有两个指针,分别指向节点的直接前驱和直接后继。因此双向链表可以双向遍历。老师代码如下:#include <stdio.h>#include <malloc.h>/*** Double linked list of integers. The key is char.*/typedef struct DoubleLinkedNode{char data;struct Double...

2022-05-03 17:38:54 101

原创 数据结构:01线性表

下面是老师的代码#include <stdio.h>#include <malloc.h> #define LIST_MAX_LENGTH 10 /** * Linear list of integers. The key is data. */typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH]; //The maximum length is

2022-04-25 23:17:43 86

原创 MySQL学习笔记(二)

转义字符的使用MySQL中转义字符有 \ ‘ 和“转义字符 转义后的字符 \" 双引号(") \' 单引号(') \\ 反斜线(\) \n 换行符 \r 回车符 \t 制表符 \0 ASCII 0(NUL) \b 退格符 MySQL存储引擎InnoDBInnoDB引擎是具备外键支持功能的事务处理引擎...

2022-04-03 16:57:05 873

原创 MySQL学习笔记(一)

Java中的Math类math类的构造方法是private的,因此无法创建Math对象,Math类的方法可以通过类名来调用它们

2022-03-29 19:33:33 1251

原创 Java中的内置包装类

Java是一门面向对象的语言 ,我们知道Java中的数据类型分为基础数据类型和引用数据类型,然而基础数据类型不能称之为对象,因此Java设置了位于这些基本数据类型之上的包装类,包装类和基本数据类型的对应关系如下1 byte Byte2 short Short3 int Integer4 long Long5 char Character6 float Float7 double Double8 boolean Boolean可以清楚的看到除了integer和chara

2022-02-13 23:56:09 369

原创 java字符串学习笔记(持续更新)

字符串大小写字母变换:java中字符串大小写字母变换可以用到toLowerCase()方法(变成小写)和toUpperCase()(变成大写)方法,使用例子是字符串名.toLowerCase() (另一个也一样)String en="hello";System.out.println(en.toLowerCase());输出结果是:HELLO。java中字符串长度的获取Java中字符串长度的获取可以用到length()方法,使用格式为字符串名.length()Strin

2022-02-09 00:15:27 226

原创 二叉树的遍历和建立

tips:二叉树遍历多应用递归的思想一、前序遍历前序遍历的顺序是先遍历该位置结点,再通过递归遍历该结点的左结点,再遍历右结点。结点的遍历顺序如下图对该二叉树进行前序下遍历,遍历的顺序是A>>B>>D>>H>>I>>E>>J>>C>>F>>K>>G前序遍历的算法如下void PreOrder(tree T) { if (T == NULL) { retu.

2021-12-25 18:13:14 548 1

原创 单链表详解(学习笔记)

链表是一种链式储存结构,在C语言中有着重要的作用。而在如同我一样的初学者的学习过程中,链表的操作很有难度,故而有必要用博客记录学习过程,分享给大家的同时也自我巩固。一.链表的概念和定义相对于线性表,链表有许多优点,例如在线性表中,删除或插入元素的操作很复杂,需要将插入或删除位置的前/后元素不停地移动,倘若涉及到频繁地插入或者删除的操作,链表的优点就凸显出来了。链表作为一种链式存储结构,其的存储内容除了要存的数据元素信息之外,还储存着后继元素的存储地址。为了表示链表中每一个存储元素a(i...

2021-12-16 11:58:40 1400 1

原创 算法的时间复杂度

时间/空间复杂度

2021-12-11 18:44:16 427

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除