自定义博客皮肤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)
  • 收藏
  • 关注

原创 数据结构 ---- 图的遍历

2022-05-31 21:33:30 214

原创 数据结构 ---- 邻接表及广度优先遍历***

2022-05-31 21:31:47 117

原创 数据结构 ---- 哈夫曼树****

给定N个权值作为N个叶子节点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。#include <iostream>#include <fstream>#include <string.h>using namespace std; #define MaxSize 1024 // 读入文件的上限 #define OK 1#def

2022-05-29 16:58:46 404

原创 数据结构 ---- N后问题***

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。#include <stdio.h>#include <malloc.h>#include <math.h>/** * Place it there, applicable? */bool place(int* paraSolution, int paraT){ int j; for (j = 1; j < paraT; j ++){ .

2022-05-29 16:55:06 91

原创 数据结构 ---- 二叉树

对于二叉树,我个人的理解都在下面的图片中了,跟着代码进行跟踪后,发现其实数据结构的二叉树也没有想象中的难,还是有一定的规律可循的,并且老师的算法真的安排的非常巧妙,让我自己来去思考写,我感觉是很难去实现的,二叉树确实是一个对我来说比较难的点,还需要在去学习积累一下。#include <stdio.h>#include <malloc.h>#define QUEUE_SIZE 5/** * Binary tree node....

2022-05-24 22:36:36 101 1

原创 数据结构 ---- 矩阵的转置*

矩阵的转置,其实对于我来说还是很难的,在上课的时候也是理解了好久才最终明白,其实它用了一个很巧妙的方式,通过另一个结构体对于数据的记录,去读取这个矩阵,并且此处引入了一个压缩矩阵,极大的优化了存储空间,帮助计算机可以更好的运行。#include <stdio.h>#include <malloc.h>typedef int elem;/** * A triple for row index, column index, and data. */typedef .

2022-05-22 10:23:51 456

原创 数据结构 ---- 二维数组与矩阵乘法*

二维数组的概念其实在上学期我们学习数组的时候是接触到过的,对于二维数组,其实没有那么复杂,只不过是利用了两个指针,就是指向指针的指针来实现的,相当于是一个二维空间存储的应该数组,分为排和列。在次代码中,我们运用了两种表现形式,帮助理解到二维数组的全面概念。与此同时,对于矩阵的乘法,我们运用了三重循环去实现,帮助更好的实现对应程序,虽然时间复杂度较高,但是也其实问题也是十分困难的。#include <stdio.h>#include <malloc.h>#include

2022-05-22 09:58:59 119

原创 数据结构 ---- 队列*

队列这个十分容易理解,其实对于队列来说,就好比我们去超市排队买菜,在收款的时候每个人一依次排成一队,中间是不允许人来插队的。并且对于队首和队尾的位置会专门有一个存储空间去记录它,这样使它更加的科学,更加符合数据结构带给我们方便性的原理。与此同时,队列其实就是特殊的线性表,对于其特殊性,我就不言而喻了。对于我们去操作使用队列的时候,前后尾部记录对我们来说尤其有用,帮助我们去优化实现数据的存储、输出等一系列操作。而循环队列其实也是为我们提供了一个思路----节省内存空间。虽然我们现在的代码只不过是占用了内存

2022-05-17 20:08:17 184

原创 数据结构 ---- 递归及应用(汉诺塔)

对于递归来说,可以形象的形容为踢皮球行为,每次都踢给前一项,一直踢,踢到最后实在没得踢了,就只能实现了。所以对于递归来说,代码是特别的简单的,但是对逻辑的要求比较高,需要很强的逻辑思维,先从后往前踢,然后再从前往后去实现,以此来实现最终的代码。虽说递归的应用不是很多,并且对于计算机内存的要求比较高,要求计算机一步步的计算保存数据,所以就很困难的实现,但是其实这也是另外一种逻辑思维,帮助我们更好的理解去使用C语言代码,去解决更多的问题。其实,对于汉诺塔问题来说,没有那么多很深的逻辑可言,只有很简单的.

2022-05-12 13:35:03 246

原创 数据结构 ---- 栈的应用(2)表达式求值

看了大佬的代码,大部分都是用c++来实现的,但是我对c++不怎么了解,所以只能临摹一下大佬的代码,从中学习一些。但是这个代码确实帮助我许多,拓展了我的语法,让我更好的了解了编程语言的魅力。并且大佬引用了许多数据库,更加有助于代码的简短性,对于提升我的语法以及以后写代码的能力有很大的帮助。所以这次的学习让我印象深刻!大佬代码中美中不足的就是数据的定义感觉没有闵老师对于其的标准化吧,可能与闵老师比起来,易读性不太高,对于编程者去读或者学习代码难度要求比较高。#include <iostream&gt

2022-05-10 20:38:43 209

原创 数据结构 ---- 栈的应用

在此section中,我们学习了对于栈这一数据结构进行了应用,这一运用利用了线性表中最有优势的一点----容易排序,此代码将不同种的括号分到了不同的格子中,然后根据线性表的顺序进行验证,容易验证出其算式中的括号是否正确,有助于帮助我们更好的运算。此应用有助于帮我们更好的体会其价值,帮助我们去更好的运用,提高主观能动性,同时有利于后期自己去设计代码。在老师的代码中,我发现了,无论是正确与否,输出的数据都是一个数字:1或0,所以对于真实的代码测试过程中,它的可读性没有那么的高,所以我就给它的测试区域做了

2022-05-09 17:42:49 420

原创 数据结构 ---- 栈

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。我对于栈的看法,我认为它本质上就相当于一个加强版的数组,只不过在数组的基础上加上了一个节点,可以跟踪目前程序进行到了哪个位置。其实对于栈来说,也是线性表的拓展,继承了线性表的易于查找,方便

2022-05-09 16:52:38 86

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

多项式的加法我认为就是对单链表结构的一个简单的应用,只不过,在链表中,多项式的加法会根据实际情况增加了一个数据的位置,因此来实现其相加。下面是代码1.基础函数

2022-05-06 18:25:26 895 1

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

作为数据结构的一大难点,静态链表也为我们更好的理解数据结构这门课做了铺垫。记得老师告诉我们,数据结构是操作系统的核心,那静态链表也为我们理解操作系统等方面的工程起了很好的铺垫作用。对于静态链表,我个人的主观感受就是,比双链表要难许多,毕竟是涉及到数据更加基本的存储,静态链表其实更能反映其本质,也更能体现出C语言本身的魅力。与此同时,静态链表带给我的直观感受是,它其实对于我们程序员来说,具有更强的自我操作性,对于我们来操作数据的时候,可控性更强,不再局限于操作系统了。可以以此实现更多的操作。在我看来,

2022-05-03 14:54:52 1023

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

打代码时候,忘记老师说的双链表代码的bug,所以就自己去测试,写了一个从尾部打印的函数,发现在插入结束后,尾部打印正常工作,但是在删除完之后,尾部打印便不正常了,开始一直打印乱码,所以就根据示意图的方法,以此找到了其bug,将其修正,然后代码正常运行。基础函数#include <stdio.h>#include <malloc.h>typedef struct DoubleLinkedNode{ char data; struct DoubleLi...

2022-05-02 13:29:01 329

原创 数据结构 ---- 单链表

经过第二节课的学习,我学到了一个新的对于数据进行存储以及使用的方式-----单链表。它让我重新认识到了C语言中的数据结构,以后我对于C语言数据的使用,不再是以单一的数组、线性表来使用,而是可以用到单链表去对数据进行增加、插入、删除等一系列操作。同时,经过描摹老师的代码,我也感触深刻,对单链表这部分的内容理解的更加深入,有助于我后续在实际应用中更好的操作和管理数据,也开阔了我的知识面。话不多说,以下是描摹老师的代码,以及我对与单链表进行实体化的示意图。基础函数定义结构体typedef struc

2022-05-01 12:19:46 139 1

原创 数据结构及算法 ---- 线性表

作为数据结构的第一门课----线性表,是实现数据存储的基本方式,可以帮助我们去合理的存储数据,方便去找到数据的位置,以此来对数据进行增删查改等基本操作。我做的操作是实现数据中数字的定位、查找等基本操作,并且运用测试程序去验证了函数的正确性,以下附有代码。学习抄写老师的代码#include <stdio.h>#include <malloc.h>#define LIST_MAX_LENGTH 10/** * Linear list of intege...

2022-04-26 21:20:16 663

空空如也

空空如也

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

TA关注的人

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