自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构:哈夫曼树

收获:哈夫曼树是由 n 个带权叶子结点构成的所有二叉树中带权路径长度最短的二叉树,又称最优二叉树,权值越大的叶子节点越靠近根节点,权值越小的节点越远离根节点。哈夫曼树中的左分支代表0,右分支代表1,则从根节点到每个叶子节点所经过的路径分支组成的0或1序列作为该叶子节点对应字符的编码。

2023-05-10 21:53:05 40

原创 数据结构:二叉树的构建与遍历

遍历是沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。遍历有前序/中序/后序的递归结构遍历。前序:访问根结点,先序遍历左子树,先序遍历右子树;中序:中序遍历左子树,访问根结点,中序遍历右子树;后序:后序遍历左子树,后序遍历右子树,访问根结点。二叉树与一般树的区别主要是两点,一是每个结点的度最多为2;二是结点的子树有左右之分,不能随意调换。

2023-05-03 21:28:54 49

原创 数据结构:链队列

首先,定义个tempQueuePtr,然后创建个空队列,入列:在函数中定义个新节点,将元素放入其data中,指针域为空,rear的next指向该节点并让rear等于该节点。出列:1.判断:如果front==rear,空。2,.定tempNodePtr,l令其等于front的next,resultValue等于其data,令front的next等于front next的next,将tempNodePtr free后返回resultValue。

2023-04-24 20:02:32 34

原创 数据结构:括号匹配

从左往右开始,首先,( 入栈,然后)与(匹配,(弹栈。然后(入栈,(入栈,)与后面的(匹配,(弹栈,)与前面的(匹配,(弹栈。最后只剩#,识别通过。

2023-04-24 15:09:29 33

原创 数据结构:hanoi分析

3:分治与递归:分治:分而治之,将大问题划分为若干个规模较小、可以直接解决的问题。将移动n个盘子的问题看成n-1个盘子和1个盘子的问题,再接着往下分解问题。A,B,C三个柱子,目标从A->C,(递归与分治)移动n个盘子,先将n-1个盘子移到B,然后将A上的最后一个移到C,最后将n-1个移到C,三次次数之和为总次数。1.自顶向下,逐步求精:通过模块分解分解细化大问题到足以解决的小问题。hanoi栈的容量为n,空间复杂度为O(n).2.时间复杂度:T(n)=2T(n-1)+1;

2023-04-23 13:04:56 94

原创 数据结构:线性表+汉诺塔

插入:从后往前遍历,从p->next开始往前到需要插入的位置,把每一个i的值赋给前一个位。特点:元素个数有限,元素都是数据元素,每个元素都是单个元素,每个元素占有相同大小的存储。初始化:构造一个空的线性表。查找:通过遍历停到与需要查找的值相等的位置,然后停下来返回。删除:删除和插入是一样的只是移动的方向不是一样的,删除是从被删除的点开始把后面一个。定义:就是定义一个结构,结构里面分别是这个表的数据,还有数组的最后一个元素。

2023-04-19 22:01:42 42

原创 数据结构:多项式的加法

收获:两个多项式,首先让第一项的 幂数比较大小,大的做第一项并往下查找,不断进行比较,相同的话系数相加,若系数和为0则往下进行并释放该空间。

2023-04-11 13:00:25 34

原创 数据结构:静态链表

初始化:used首先占据第一个位置,并初始化为1,node[0].data初始化为空,node[0].next初始化为-1;然后used后面都初始化为0;插入:先查找所要插入位置的前一个元素,创建一个新节点放入相应元素。删除:查找结点a(i-1)并由指针p指向该结点。临时保存待删除结点a(i)的地址在q中,以备释放。将结点*p的指针域指向a(i)的直接后继结点。释放结点a(i)的空间。

2023-04-11 12:42:33 20

原创 数据结构:单链表2.0

上节课老师对单链表进行了进一步的讲解,并教会了我们通过图示法来分析理解,例如初始化阶段,假定tempHeader地址为7800,tempHeader->next为空,后续指向下一个节点来连接。其中老师讲了两种方法来解决。个人感觉插入和添加还是可以的,就是删除比较难一点,有点绕,不过通过图示法可以更容易理解一点。在插入数据时,一定要先将前驱的指针域的值先赋值给插入结的指针域,然后再更改前驱结点指针域的值,否则会造成后续结点的丢失。在删除节点的过程中要注意备份一份要删除结点的地址以便后续空间的释放。

2023-04-03 18:57:45 36

原创 数据结构:单链表

制作链表一般包含以下步骤:先定义一个结构体,然后设计初始化,输出,添加,插入,删除的函数,最后设计一个联合的函数。单链表的初始化操作就是申请一个头结点,将指针域置空。遍历单链表:声明一个指针p,从头结点指向的第一个结点开始,如果p不为空,那么就输出当前结点的值,并将p指向下一个结点,直到遍历到最后一个结点为止。,其中删除可以通过free来进行。1.单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元。2.查找某个特定的结点时,需要从表头开始,依次查找。

2023-03-29 21:28:39 26

原创 第二节课堂作业

收获:敲写代码要用全称,顺序表基本操作实现:初始化,取值,查找,插入,删除。

2023-03-27 19:51:49 43

原创 数据结构第一次课堂心得

第一堂数据结构收获

2023-03-22 21:48:26 62 1

空空如也

空空如也

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

TA关注的人

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