自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 问答 (3)
  • 收藏
  • 关注

原创 中序后序建立二叉树

【问题描述】 根据一棵二叉树的中序遍历序列和后序遍历序列,求这棵树的前序遍历序列。【输入形式】 一棵树的中序遍历序列和该树后序遍历序列。输入序列中仅含有小写字母,且没有 重复的字母【输出形式】 一棵树的前序遍历序列【样例输入】dbeafcgdebfgca【样例输出】abdecfg【算法思想】为了创建一棵二叉树,首先我们需要找到树的根节点。我们知道中序遍历的顺序是左子树根节点右子树,所以在这样的序列里面是找不到根节点的。但后序遍历的顺序是左子树右子树根结点,因此在后

2022-04-27 10:18:20 1098

原创 二叉树的层序遍历

【算法思想】二叉树的层序遍历不同于其他三种遍历方式,并不是按照树的路径,而是根据树的层次来遍历的因此很难通过递归的方式,但是层序遍历很像杨辉三角的构建,通过队列的方式将上层结点存储在队列中,然后在输出队列中元素的同时。将输出元素的左右孩子加入队列。一次来达到层序输出的效果。【代码实现】#include<iostream>#include<queue>using namespace std;struct BinTree{ char data

2022-04-25 21:55:26 518

原创 二叉树的后序遍历(递归与非递归)

【递归】二叉树的后序遍历的顺序是先输出左孩子,然后输出右孩子,最后输出根节点。那我们可以将一颗二叉树的左右子树分别当作他的左右孩子,然后进行递归,当遇到空指针的时候则是递归出口。【代码实现】#include<iostream>using namespace std;struct BinTree{ char data; struct BinTree *left ,*right ;};void postOrderTraversal(BinTree

2022-04-25 21:48:23 817

原创 二叉树的中序遍历(递归与非递归)

【递归】二叉树的中序遍历的顺序是先输出左孩子,然后输出根节点,再输出右孩子。那我们可以将一颗二叉树的左右子树分别当作他的左右孩子,然后进行递归,当遇到空指针的时候则是递归出口。【代码实现】#include<iostream>using namespace std;struct BinTree{ char data; struct BinTree *left ,*right ;};void preOrderTraversal(BinTree *

2022-04-25 21:39:03 1380 1

原创 二叉树的先序遍历(递归与非递归)

【递归】众所周知二叉树先序遍历的顺序是先输出根节点,然后输出左孩子,再输出右孩子。那我们可以将一颗二叉树的左右子树分别当作他的左右孩子,然后进行递归,当遇到空指针的时候则是递归出口。【代码实现】#include<iostream>using namespace std;struct BinTree{ char data; struct BinTree *left ,*right ;};void preOrderTraversal(BinTre

2022-04-25 21:25:07 629

原创 二叉树的创建

二叉树的学习与递归有着密不可分的关系,二叉树的大部分操作可以用递归来实现。再创造二叉树的过程中可以先写出创建根,左子树,右子树的代码,然后把左子树和右子树分别当作一颗新的数,然后利用递归就可以实现。【问题描述】给出一个按照先序遍历得出的字符串,'#' 代表空的子节点,大写字母代表节点内容,建立一个二叉树。【样例输入】ABC##DE#G##F###【代码实现】#include<iostream>using namespace std;struct BinTre

2022-04-25 21:11:31 1173

原创 && 和 || 的优先级

&&优先级大于||举个例子:#include<iostream>using namespace std;int main(){ if(true||true&&false) { cout<<1; } else cout<<0;}如果||和&&同优先级,true||true返回值为true,返回的true与后面的false取&&amp

2022-04-20 20:12:34 7907 3

原创 杨辉三角形

何为杨辉三角:​杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国数学史上的一个伟大成就。 每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。 【问题描述】输入一个正整数n,打印相应行数的杨辉三角.

2022-04-01 14:00:37 257

原创 python08(列表)

列表简单操作:#!/usr/bin/python3#coding=utf-8#list(列表)类型,在[]输入元素,用逗号隔开,且元素种类可以不同,可以嵌套列表list1 = [1,2,3,"1","3","5"]list2 = ["this","is","a","list",list1]print (list2)#元组访问和字符串访问的方式相同,可以通过下标来进行访问print(list2[0],list2[3],list2[4],sep=":")print(list2[-1],

2022-03-28 17:32:43 613

原创 python07(字符串)

#!/usr/bin/python3#coding=utf-8#字符串批量创建方式String1 = "{} {} {}".format('Practice', 'in', 'LintCode')print("Print String in default order: ")print(String1)#按照括号内顺序给字符串赋值String2 = "{1} {0} {2}".format('Practice', 'in', 'LintCode')print("\nPrint Stri.

2022-03-28 14:35:18 967

原创 走迷宫(数据结构,栈的应用)

【问题描述】有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。一个机器人从起点走到终点。当机器人走到一个通道块,前面已经没有路可走时,它会转向到当前面向的右手方向继续走。如果机器人能够过,则留下足迹‘*’,如果走不通,则留下标记‘!’。下面给出算法,请你模拟机器人的走法输出最终的状态。【输入形式】一个 10 x 10 的二维字符数组。【输出形式】机器人走过的路径状态。【样例输入】###########S # # ## # # #...

2022-03-27 21:07:49 2045

原创 数据结构——括号匹配问题(栈的应用)

题目如下:字符串以#结尾,若匹配则输出1,否则输出0算法思想:检测字符串,如果为左括号就进入栈,如果为右括号就与栈顶元素匹配,如果成功则栈顶元素出栈,否则返回匹配失败结果,字符串扫描结束时如果栈内为空则全部匹配成功,若栈中还有剩余的左括号,则说明未全部匹配。特殊情况:如"( ) ] { } "在这种情况下,先检测到' ( '压入栈中,检测到' ) '匹配成功,令栈顶元素出栈,此时继续检测字符串,遇到' ]',此时栈内为空,而调用top函数会使程序无法进行,因此在检测到右括号时,还..

2022-03-26 16:35:30 1751

原创 计算中缀表达式(可计算浮点数)

#include<iostream>#include<string>#include<stack>#include<iomanip>#include<stdlib.h>using namespace std;int getPriority(char ch){ //获取优先级 if (ch == '(') return 1; else if (ch == '+' || ch == '-') return 2.

2022-03-25 23:42:53 839 1

原创 python06(数字运算及相关函数)

#!/usr/bin/python3#coding=utf-8import mathx = 2y = 8list = [1,5,3,35,67,32]print(5/2)#用/总是返回浮点数print(5//2)print(5.0//2)#用//是对所得取整,但是所得数据类型取决于被除数print("abs:",abs(-4.5))#绝对值print("math.fabs:",math.fabs(-4))#绝对值,以浮点数的形式print("math.ceil:",math.c.

2022-03-19 18:32:02 745

原创 python05(逻辑运算符)

#!/usr/bin/python3#coding=utf-8a, b = True, Falseprint(a and b)print(a or b)print(not a)print(not b)#对逻辑的一种特殊运算price = 100vip = ["tony","jokey","hunter","witch"]blacklist = ["alex","alice"]customer = "tony"if customer in vip: print(int(0.

2022-03-19 18:30:44 81

原创 python04(类型转换)

#!/usr/bin/python3#coding=utf-8#强制类型转换#float转int,省略小数点p = 3.45print(int(p))#str转intp2 = '-2'print(int(p2))#字符串里不可以是浮点数,只能以整形数的方式存在'''bytes转intbytes(字节串),以字节的方式去储存内容,可以和字符之间相互转换通常用来储存二进制文件,创建方式如下'''b1 = bytes()#创建空字节b2 = b'-13'print(int(b2.

2022-03-19 18:30:03 248

原创 python03(部分数据类型)

#!/usr/bin/python3#coding=utf-8list1 = [0,1,'test']tuple = ('string',list1,5,3,4)'''元组用小括号,其中内容无法修改元组有序,且不可被修改'''print(tuple[0])#输出第一个元素print(tuple[1:3])#从第二个元素输出到第三个元素,如果冒号后为空,则全部输出#集合,集合是无序的,有单一性的parame1 = {2,'川宝',666,'yyds'}parame2 = set().

2022-03-19 18:29:00 103

原创 python02(部分数据类型)

#!/usr/bin/python3#coding=utf-8test1 = 2test2 = 3.3test3 = 'string'test4 = Falseprint(type(test1))print(type(test2))print(type(test3))print(type(test4))print("what's up")#python无单字符类型,在打印的时候不支持单(双)引号嵌套单(双)引号test5 = [test1,test2,test3,test4]#l.

2022-03-19 18:25:38 151

原创 python01(输入输出)

#!/usr/bin/python3#coding=utf-8print('hello world')print('练习python的第',0.5*2,'天')tips = 'please enter your name'name = input(tips)print(name,"test",end="")print(1,2,3,"6",sep='\n')a = 2.444print(round(a,2))print("%.2f"%a)'''end=“”在输出结尾添加双引号内的内容.

2022-03-19 18:23:17 793

空空如也

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

TA关注的人

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