logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【数据结构·考研】二叉树的高度(深度)

二叉树的高度(深度)二叉树的高度和深度其实是相同的东西。自下向上称作计算高度,由上到下称为计算深度。求二叉树的深度也有递归和非递归的方法。递归的方法就是一直递归到树的最边缘,通过比较当前左右子树的高度,取大的一方+1继续向上累积,直到比较到根节点的左右子树高度,然后取大的一棵+1就是最后树高。而非递归的方式是利用到树的层次遍历,每遍历一层+1,直到遍历完整棵树。代码如下:#include<i

#数据结构#c++
【数据结构·考研】先序构造二叉树

在跑程序构造一棵二叉树时,我们经常使用先序构造的方式。先创建一个结点赋值,然后再递归的构造它的左右子树。例如我们约定好以' # '结束输入,构造下面形状的一棵二叉树:/*------------树的形状:abcde f--------------*/我们以先序的方式输入这棵树:a b d # # e # # c f # # #,最后以层次的方式展示出来。代码如下:#include<iostr

#数据结构#c++
手撕考研数据结构(代码汇总篇)

手撕考研数据结构(线性表、树、图、查找排序、算法),全部由c++实现

文章图片
#考研#数据结构#c++
【数据结构·考研】Floyd算法

Floyd算法Floyed 算法与 Dijkstra 算法的思想完全一样,遍历整个邻接矩阵,比较每一条边可否加入循环中的两边之间来短接。Floyed 算法基于动态规划算法,可以允许有负权值,但不可以有带负权值的边存在。首先,初始化一个邻接矩阵,初始化一个 dp 矩阵,初始化一个顶点的前趋矩阵prev。#define N 6vector<vector<int> > Graph

#算法#数据结构#c++ +2
【数据结构·考研】约瑟夫环

约瑟夫环约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。例如只有三个人,把他们叫做A、B、C,他们围成一圈,从A开始报数,假设报2的人被杀掉。首先A开始报数,他报1。侥幸逃过一劫。然后轮到B报数,他报2。非常惨,他被杀了C接着从1开始报数接着轮到A报数,他报2。也被杀死了。最终胜利者是C现如今给定一个队

#数据结构#c++
【数据结构·考研】树的孩子兄弟表示法

树的孩子兄弟表示法也叫树的二叉树表示法。树的左指针指向自己的第一个孩子,右指针指向与自己相邻的兄弟。结构的最大优点是:它和二叉树的二叉链表表示完全一样。可利用二叉树的算法来实现对树的操作 。左孩子右兄弟表示的树的高度因为二叉树表示法的根节点没有右孩子,所以树高就是左子树树高 + 1。然后我们看下根节点第一个孩子的高度,由于第一个孩子的右子树和第一个孩子的高度是相同的,所以比较左子树 + 1的高度来

#数据结构#c++
【数据结构·考研】判断出栈序列是否正确

判断出栈序列题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。备注:例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路,考研中经常出现判断出栈序列是否合理的选择题,这样的题我们就是用入栈序列一边入栈,然后观察出栈序列的首元素,当入栈元素与出栈序列首元素相同

#数据结构#c++
    共 20 条
  • 1
  • 2
  • 请选择