自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode-6.Z字形变换:2021-2-6

Leetcode 6.Z字形变换题目:题解:找数学规律规律如下:

2021-02-06 15:41:56 127

原创 2021-1-12 关于Codeblocks编译多源代码文件程序的一些问题以及解决办法

关于如何构建多源代码文件的程序:我想在原本的main函数中,添加#include"test.h"即test这一个文件方法一:首先图(1)然后图(2)注意下一界面,需要选中Debug和Release两个选项(否则不能编译)test.h包括自定义符号常量和函数原型test.h设置完成后,下面进行test.cpp的设置(test.cpp有函数定义)(因csdn上传图片内存有限,下面是文字描述)如图:如图(1)然后如图(2),只不过把图(2)的选中变为C/C++ source同样注

2021-01-12 16:13:53 1091 1

原创 2020-11-24 杂想

自己需要断更一下了,说实话自己挺菜的,我了解到的大佬(不是一个学校的)两个月学完数据结构(初步理解+深度理解+刷题),可能是因为自己效率不高吧(这个地方有待改进,之前也在试着了解这方面的东西)最近快考试了,我想刷一刷绩点(之前对于刷绩点挺不屑的),我还要学操作系统、编译原理呢,加油!兜兜转转,似乎又回到了起点代码虐我千百遍,我待代码如初恋...

2020-11-24 08:27:34 147

原创 2020-11-21 编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间

题目:编写递归算法:对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间//题目:编写递归算法:对于二叉树中每一个元素值为x的结点,//删去以它为根的子树,并释放相应的空间#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; bool flag;

2020-11-21 17:22:10 2152

原创 2020-11-21 编写递归算法,求二叉树中元素值为x的结点的深度、以元素值为x的结点为根的子树的深度

题目:编写递归算法,求二叉树中元素值为x的结点的深度题目:编写递归算法,求二叉树中以元素值为x的结点为根的子树的深度//题目:编写递归算法,求二叉树中元素值为x的结点的深度//对应代码的GetDepth_OneValue函数//题目:编写递归算法,求二叉树中以元素值为x的结点为根的子树的深度//对应代码的GetTreeDepth_OneValueAsRoot函数#include<iostream>using namespace std;#define TElemType dou

2020-11-21 12:16:12 2556

原创 2020-11-21 编写递归算法,将二叉树的所有节点的左、右子树相互交换

题目:编写递归算法,将二叉树的所有节点的左、右子树相互交换//题目:利用递归交换二叉树每个结点的左右子树//总结:使用先序递归/后序递归,不能使用中序递归#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; bool flag; struct BiTNode* lc

2020-11-21 11:16:55 2640

原创 2020-11-21 编写递归算法,计算二叉树中叶子结点的数目

题目:编写递归算法,计算二叉树中叶子结点的数目//算法思想:后序遍历 先求左右子树的叶子结点,再加上根结点的情况#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; bool flag; struct BiTNode* lchild,* rchild;}BiTNo

2020-11-21 08:03:14 3124

原创 2020-11-20 三叉链表非递归非栈中序遍历

这个函数代码思想是看别人的,自己写不出来链接:基于三叉链表存储结构的二叉树的不用栈的非递归遍历—csdn在此感谢大佬的指点!//void InOrder_NoUsingStack(Tree T)//三叉链表非递归非栈中序遍历//这个函数代码思想是看别人的,自己写不出来#include<iostream>using namespace std;#define TElemType doubletypedef struct TNode{ TElemType data;

2020-11-20 20:21:03 418

原创 2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值

题目6.41:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值//题目:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值//解决方法:递归函数的参数使用引用参数#include<iostream>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; struct BiTNode* lchild,* rchild;}BiTNod

2020-11-20 12:40:44 1534

原创 2020-11-19 三叉链表的构建以及利用mark实现三叉链表后序遍历(不用栈)

题目6.39:题目里面注明了mark如何使用,也让我学习到了一定的知识//利用mark(0:继续向左 1:向右 2:访问并回到双亲)的三叉链表的后序遍历(不用栈)#include<iostream>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; int mark;//标志变量0:继续向左 1:向右 2:访问该结点 struct BiTNo

2020-11-19 17:35:25 662

原创 2020-11-19 二叉树的后序非递归遍历

题目6.38:同6.37题条件,写出后序遍历的非递归算法(提示:为分辨后序遍历时两次进栈的不同返回点,需在指针进栈时同时将一个标志进栈)我的下列代码并没有选择将标志进栈,而是在后序非递归的时候每个结点都有一个标志,标志判断什么时间用来回溯若有不懂,之前的博客写的有(日期见:2020-11-16)#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef st

2020-11-19 13:07:19 172

原创 2020-11-19 利用栈实现先序遍历的非递归算法

题目6.37:试利用栈的基本操作写出先序遍历的非递归形式的算法(我之前的博客写的有)#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; struct BiTNode* lchild,* rchild;}BiTNode,* BiTree;void Creat_BiTr

2020-11-19 12:48:28 1438

原创 2020-11-19判断两棵二叉树是否相似

题目6.36:#include<iostream>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; struct BiTNode* lchild,* rchild;}BiTNode,* BiTree;void Creat_BiTree(BiTree& T)//递归创建二叉树{ TElemType num; if(cin&

2020-11-19 10:17:45 180

原创 2020-11-18 N皇后问题

总结:越是因底层知识而出现的bug,越是不容易被发现//N皇后问题//以及出现的严重问题(bug)(找了半天@.@):27行代码 关于int/int的结果会被截断的问题//以下在代码行加的注释是为了利用这些代码进行测试#include<iostream>using namespace std;void Print_ChessBoard(int** chessboard,int n)//打印棋盘{ cout<<"-----------"<<endl;

2020-11-18 20:36:11 257 2

原创 2020-11-17 中序线索二叉树

中序线索二叉树先序与后序线索化还没实现过#include<iostream>#include<stack>using namespace std;#define TElemType doubletypedef enum{Link,Thread} PointerTag;typedef struct BiThrNode{ TElemType data; struct BiThrNode* lchild,* rchild; PointerTag LT

2020-11-17 18:44:53 108 1

原创 2020-11-16 //先序、中序、后序(递归、非递归(栈实现)) 后序非递归用到标志变量flag 以及层序遍历(队列实现)

//先序、中序、后序(递归、非递归(栈实现)) 后序非递归用到标志变量flag 以及层序遍历(队列实现)#include<iostream>#include<queue>#include<stack>using namespace std;#define TElemType doubletypedef struct BiTNode{ TElemType data; bool flag;//flag用于非递归后序遍历 struct Bi

2020-11-16 19:35:47 133

原创 2020-11-10 堆串的基本操作以及Concat Repalce Insert操作

题目:#include<iostream>using namespace std;typedef struct{ char* ch; int length;}HString;bool Init_HString(HString& S)//初始化堆串{ S.ch=nullptr; S.length=0; return true;}bool Input_HString(HString& S)//创建堆串{ cou

2020-11-10 22:44:42 191

原创 2020-11-10 //块链串的判断对称的算法

题目:假设以块链结构作串的存储结构。试编写判别给定串是否具有对称性的算法,并要求算法的时间复杂度为O(StrLength(S))//我下面的代码没有考虑时间复杂度//块链串的判断对称的算法#include<iostream>using namespace std;const int NodeSize=5;typedef struct StrNode{ char ch[NodeSize];//每个结点含有NodeSize个字符 struct StrNode* pri

2020-11-10 11:11:51 1052

原创 2020-11-9 假设以块链(结点大小>1的链串)结构表示串。试编写将串s插入到串t中某个字符之后的算法

题目:假设以块链(结点大小>1的链串)结构表示串。试编写将串s插入到串t中某个字符之后的算法(若串t中不存在此字符,则将串s联接在串t的末尾)//块链串(结点大小>1的链串)//将块链串Str2插入到块链串Str1中某个字符之后的算法//(若串Str1不存在此字符,则将Str2插入到Str1的末尾)//继续加油!#include<iostream>#include<cstdlib>using namespace std;const int NodeSiz

2020-11-09 21:11:19 1326 1

原创 2020-11-8 //关于 结点大小为1的链串 的6种基本操作

题目4.21:#include<iostream>#include<cstdlib>using namespace std;typedef struct StrNode{ char data;//(结点大小为1) struct StrNode* prior,* next;}StrNode,* Strlink;typedef struct{ Strlink head,tail; int length;}LinkString;bo

2020-11-08 18:01:24 362

原创 2020-11-8 //编写算法,求串s所含不同字符的总数和每种字符的个数

题目:编写算法,求串s所含不同字符的总数和每种字符的个数#include<iostream>#include<cstdlib>using namespace std;typedef struct{ char* ch; int length;}HString;bool Creat_Str(HString& S)//创建一个串,并向其中输入数据(可能不是串的基本操作){ int n; cout<<"输入串的长度:"

2020-11-08 16:35:22 2426 2

原创 2020-11-7 串的基本操作、一些非基本操作(使用串的堆存储结构)

题目:![在这里插入图片描述](https://img-blog.csdnimg.cn/20201107134317434.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTg4ODI4Nw==,size_16,color_FFFFFF,t_70#pic_#include<iostream>#include

2020-11-07 13:47:22 156

原创 2020-11-6 定长串的基本操作

定长串的基本操作我又把书中的代码敲了一遍@.@你时间是真的多,别再敲书中的代码了,去做题啊!!//定长串的基本操作//自己注意一下Insert_Str(SString& S,int pos,SString T)函数#include<iostream>using namespace std;const int MaxStrLen=5;typedef char SString[MaxStrLen+1];//0号单位存放串的长度bool Assign_Str(SString

2020-11-06 12:12:04 205

原创 2020-11-6 用栈实现迷宫求解

下面是用栈实现的迷宫求解的程序(之前作为离散期中报告来使用的)#include<iostream>#include<cstdlib>//包含system("pause")、system("cls")函数#include<ctime>//包含srand、rand函数using namespace std;#define MazeType int**//迷宫二维数组的元素为int型typedef struct{ int x,y;}PostType

2020-11-06 08:01:50 187

原创 2020-11-5 使用输出受限的双端队列来对n节车厢进行调度

题目3.34:switch case结构里,不能在case里定义变量,但可以在switch内和case前定义变量,就像下面代码中的这样,而且经检验在switch中定义的变量会在switch结束后被回收/清除,每次进入switch都会定义新的变量分割线:-------------------------------------------------------switch中只能定义变量,不能对其赋值,不然也会发生编译错误eg:switch内case前若int i=0; 则会错误总结:在switc

2020-11-05 10:33:36 122

原创 2020-11-5//关于switch-case结构的在内部定义变量的一些认识

题目3.33:我想说的并不是这道题,而是switch case 结构switch case结构里,不能在case里定义变量,但可以在switch内和case前定义变量,就像下面代码中的这样,而且经检验在switch中定义的变量会在switch结束后被回收/清除,每次进入switch都会定义新的变量#include<iostream>#include<string>#include<cstdlib>using namespace std;#define QEl

2020-11-05 09:27:19 539

原创 2020-11-4 关于k阶斐波那契序列的问题

题目://查阅的资料:k阶斐波那契序列的前k-1项均为0,第k项为1,之后为前k项之和//eg: 2阶斐波那契序列的前1项为0,第1项为1,之后为前2项之和//解决的思想:使用最大容量为k+1的循环队列(少用了一个元素空间,即用了k个空间)//循环队列的初始状态:将前k-1个空间的数据置为0,最后一个(即第k个)空间的数据置为1//然后将队列所有数据相加,得到sum,再将队头元素出队,将sum入队,循环即可//直至sum>max(斐波那契序列肯定能找到>max的sum

2020-11-04 18:33:51 152

原创 2020-11-4判断一段序列是否为“回文”

问题3.31:#include<iostream>using namespace std;#define ElemType doubletypedef struct LNode{ ElemType data; struct LNode* prior,*next;}LNode,* Link;typedef struct{ Link head,tail; int length;}LinkList;bool Init_LinkList(Link

2020-11-04 17:05:04 194

原创 2020-11-4循环队列域变量tail和length,无head

题目:#include<iostream>using namespace std;#define QElemType doubleconst int MaxQueueSize=5;typedef struct{ QElemType* base; int tail; int length;}SqQueue;bool Init_Queue(SqQueue& Q){ Q.base=new QElemType[MaxQueueSize]

2020-11-04 12:35:25 218

原创 2020-11-03 中缀算术表达式->后缀算术表达式(逆波兰式),并对逆波兰式求值

中缀算术表达式->后缀算术表达式(逆波兰式)的函数算法思想://中缀算术表达式->后缀算术表达式(逆波兰式)//前缀表达式是波兰式//刚开始做的时候是把单个字符char作为栈的元素类型,但这样的话不能对>=10的数以及小数进行操作//所以最后把栈的元素类型改为string,输入空格作为单次cin的停止,进而将string存入栈中//最终目的:可以测试>=10的数以及小数(已完成,使用了string作为栈的元素类型,//不过需要注意的是string与string输入的时

2020-11-03 11:53:55 307

原创 2020-11-1 //对二维数组的某个点的附近相同区域进行“变色”(根据题的要求使用栈,其实用队列更舒服)

严蔚敏《数据结构题集》P25 3.20//对二维数组的某个点的附近相同区域进行“变色”//在此使用栈结构,没队列用着舒服(若用队列其实就是图的BFS算法)#include<iostream>#include<ctime>using namespace std;typedef struct{ int x,y;}Pos;#define SElemType Postypedef struct SNode{ SElemType data; s

2020-11-01 21:36:17 104

原创 2020-10-27 双向顺序栈

问题:使用的存储结构如下图://双向顺序栈——不宜再扩大空间,因为一般来说,栈底是固定的,栈顶指针移动//而空间是由S.base开辟的一维数组空间,扩大空间,一个栈底指针(S.base1或者S.base2)需要改变#include<iostream>#include<cstdlib>using namespace std;#define SElemType doubleconst int StackSize=6;typedef struct DuSqStack

2020-10-27 17:08:27 226

原创 2020-10-27 可以用动态分配来实现循环队列,但是不可以在队列空间不够的时候扩大循环队列的空间

//该程序为了判断严蔚敏《数据结构》P63的“C语言不能用动态分配的一维数组来实现循环队列” 的正确与否//结果证明:可以用动态分配来实现循环队列,而且可以在队列空间不够的时候扩大循环队列的空间#include<iostream>using namespace std;#define QElemType doubleconst int InitQueueSize=3;const int QueueIncrement=2;typedef struct{ QElemType

2020-10-27 11:33:30 379

原创 2020-10-26//最好不要对指向类的指针使用realloc,会导致错误

在做老师布置的作业的时候,学会了一些知识最好不要对指向类的指针使用realloc,会导致错误网上查找的资料:https://blog.csdn.net/YM_MS/article/details/6878314?utm_source=apphttps://blog.csdn.net/cpongo1/article/details/102472906?utm_source=app最重要就是感谢侯老师和阎老师指出关键点,对指向类的指针不要用realloc原先的代码如下://未解决的bug:SE

2020-10-26 22:38:14 218

原创 2020-10-24 将一个双向链多项式分解为两个多项式,一个仅含奇次项,一个仅含偶次项,且利用原来的链表空间

题目://将一个双向链多项式分解为两个多项式,一个仅含奇次项,一个仅含偶次项//且利用原来的链表空间,不能新开辟空间//为了1024勋章@.@#include<iostream>using namespace std;typedef struct{ double coef; int exp;}PElemType;typedef struct PNode{ PElemType data; struct PNode* prior,* next;

2020-10-24 15:22:38 279

原创 2020-10-24 //题目:顺序多项式的相减 新开辟的顺序多项式SP3=SP1-SP2

//题目:顺序多项式的相减 新开辟的顺序多项式SP3=SP1-SP2//为了1024勋章,好吧@.@#include<iostream>using namespace std;const int Init_Poly_Size=5;const int Poly_Increment=2;typedef struct{ double coef; int exp;}ElemType;typedef struct{ ElemType* data; in

2020-10-24 12:18:00 50

原创 2020-10-23 根据Freq(频度)对链表进行排序

题目://总结:对于我这种存储方式,注意插入删除的是尾指针时,需要对尾指针进行重置//为了1024勋章@.@#include<iostream>using namespace std;#define ElemType doubletypedef struct LNode{ ElemType data; int freq; struct LNode* prior,*next;}LNode,* Link;typedef struct{ Link

2020-10-23 21:00:06 257

原创 2020-10-23

//题目:将双向循环链表L=(a1,a2,...,an)改造为L=(a1,a3,...,an,...,a4,a2)//利用了之前写过的就地逆置函数的头插法思想//为了1024勋章,好吧-.-#include<iostream>using namespace std;#define ElemType doubletypedef struct LNode{ ElemType data; struct LNode* prior,*next;}LNode,* Link;

2020-10-23 18:13:14 58

原创 2020-10-20 //线性表2.19

线性表题 2.19#include<iostream>using namespace std;#define ElemType doubletypedef struct LNode{ ElemType data; struct LNode* next,*prior;}LNode,*Link;typedef struct{ Link head,tail; int length;}LinkList;bool Init_LinkList(Link

2020-10-20 21:35:28 48

原创 2020-10-17 //严蔚敏《数据结构》 //图:求最短路径Dijkstra算法

//严蔚敏《数据结构》//图:求最短路径Dijkstra算法//自学中,加油!#include<iostream>#include<string>using namespace std;#define InfoType double#define VertexType stringconst int MaxVertexNum=20;typedef struct ArcBox{ int tailvex,headvex;//该弧的尾邻接点、头邻接点位置下标

2020-10-17 13:18:58 552

空空如也

空空如也

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

TA关注的人

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