自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构.prim算法和dijkstra算法

2,虽然这两个算法在添加新结点时,都是选择“距离最短”的结点加入集合,但是Prim算法中,“距离最短”是指未访问的结点到已经访问的所有结点距离最小,即将已经访问的结点视为一个整体,将距离最小的结点加入到已访问的集合中;3,在Prim算法中,数组元素dis[i]表示未访问结点i到已访问结点集合的最短距离,所以此时需要len记录最短距离。1,在图论中,Prim算法解决的问题是连通无向有权图中最小生成树问题,而Dijkstra算法解决的问题是源点到目标点的最短路径问题。

2023-06-12 19:09:51 123 1

原创 数据结构.图

【代码】数据结构.图。

2023-06-12 16:12:27 39

原创 数据结构.哈夫曼树

因为哈夫曼树是带权路径长度最短的树,权值较大的节点离根节点较近。而带权路径长度是指:树中所有的叶子节点的权值乘上其到根节点的路径长度,这与最终的哈夫曼编码总长度成正比关系的。这是因为在哈夫曼树中,每个字母对应的节点都是叶子节点,而他们对应的二进制码是由根节点到各自节点的路径所决定的,正因为是叶子节点,每个节点的路径不可能和其他节点有前缀的关系。哈夫曼编码是一种用于无损数据压缩的熵编码算法,通常用于压缩重复率比较高的字符数据。Q1.为什么通过哈夫曼编码后得到的二进制码不会有前缀的问题呢?

2023-06-12 15:58:33 39

原创 数据结构3.1.1二叉树的链式存储

的作用是在字符串 tempString 的末尾添加一个空字符,以表示字符串的结束。这样做的目的是为了避免在后面使用该字符串时出现一些错误,比如在进行字符串拷贝、字符串长度计算等操作时,如果不加空字符,就可能会误认为字符串还没有结束。代码实现了二叉树的构建、前序遍历、中序遍历、后序遍历和层次遍历。其中,二叉树通过一个给定的字符串进行构建,#表示空节点。队列被用来对二叉树进行层次遍历,而递归算法被用于实现前序、中序和后序遍历。

2023-05-03 20:46:26 46

原创 数据结构3.2.1链队列的实现

1.由于使用链表实现队列,所以我们需要一个队列结点QueueNode,保存值域和指向下一节点的指针;由于队列的功能为对头出队,队尾入队,所以设计两个指针,分别指向对头队尾;Queue就是队列的结构,里面有对头队尾指针;(http://t.csdn.cn/ib4u2)2.与链表一样,若没有头节点,则需要对第一个进队元素进行处理;若有头节点,当出队最后一个元素时,需要将队尾改至对头·。

2023-04-24 19:51:39 29

原创 3.1.2顺序栈的应用:括号匹配问题

栈对线性表的插入删除位置做了限制,但并没有对出栈和入栈的时间做限制。也就是说,在不是所有元素都入栈的情况下,事先入栈的元素也可以在任意时间出栈,只要保证每次出栈的元素都是栈顶元素就可以。2.通过这个32位的整数地址值,可以找到另外一个数据,就是这个指针指向的数据了,可以是任何了类型的数据。2.const如果放在*的右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。1.const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。

2023-04-24 19:38:11 60

原创 汉诺塔问题的分析

想成整体问题,1.先移n-1,2.再移n,3.最后将n-1移到n上。

2023-04-22 11:18:23 29

原创 线性表总结,汉诺塔问题

一、顺序表:空间:存储空间需预先分配,会出现空间闲置或溢出现象;存储密度不需要为表示节点间的逻辑关系而增加额外的存储开销,存储密度=1。时间:随机存储,按位置访问元素的时间复杂度为O(1)。适合:表长变化不大,能事先确定变化范围。很少进行插入或删除操作。注:对于顺序表增删要记得对表长进行增加和减少。二、链表:优点1.链表的内存空间不连续。2.如果知道要处理节点的前一个位置,则进行插入和删除的复杂度为O(1);

2023-04-19 22:19:58 43

原创 数据结构.1.2.2(2)单链表的应用

【代码】数据结构.1.2.2(2)单链表的应用。

2023-04-07 20:21:52 23

原创 数据结构.1.2.2静态链表

1.静态链表的由来:某些高级语言里面并没有指针,只有数组,静态链表就是利用数组来实现类似链表的操作(摘自静态链表的理解及基本操作@皮卡qiu~)3.静态链表是没有指针的,它使用游标(下一个结点的数组下标)来充当指针;2.静态链表在分配内存空间时会申请一整片连续空间;4.删除不需要释放节点(即不需要free())。

2023-04-07 20:10:50 34 1

原创 数据结构1.2.1单链表

LinkNode,LNode 是结构类型;结构体指针:指向结构体类型的指针,用LinkList指针创建时,Node a用a->data来表示数据;结构体数组:数组里面存放的是结构体。:删除中的(p->next!=NULL)与(p->next->data!=element)语句不能颠倒,&&只有当两者同时为真时才为真,当执行第一条语句为假时,计算机不会执行第二个语句。函数前LinkList表示返回值是指向LNode的一个指针类型;malloc函数返回的实际是一个无类型指针,要加上指针类型强制转换。

2023-03-29 23:15:18 92

原创 数据结构.1.1顺序表

【代码】数据结构.顺序表。

2023-03-25 09:52:34 44

原创 数据结构收获

数据结构笔记

2023-03-22 20:47:38 70 1

空空如也

空空如也

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

TA关注的人

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