自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C/C++递归算法,将二叉树中所有结点的左,右子树相互交换

关键思想:将大问题转换为小问题,先从树梢开始交换即树的叶子到树根。关键代码:void changeTree(BiTree& T)//交换左右子树{ if (T) { if (T->lchild || T->rchild)//判断该结点是否存在左右子树 { changeTree(T->lchild);//先转换左子树的左右子树 changeTree(T->rchild);//再转换右子树的左右子树 BiTree temp;//最后转换自

2021-11-02 21:56:13 1911

原创 C/C++递归算法,计算二叉树中叶子结点的数目

关键思路:叶子结点的度为0,即没有左孩子和右孩子关键代码:int searchNum(BiTree T){ if (!T) return 0; else { int l, r; l=searchNum(T->lchild); r=searchNum(T->rchild); if ((l == 0 && r == 0))//判断是否遍历到度为0及叶子结点 number++; return 1; }}代码实现:头文件的实现

2021-11-02 21:41:51 1781

原创 C/C++ 用递归(分治法)解决多米诺骨牌问题

问题:现有 n 块“多米诺骨牌” s1, s2, · · · , sn 水平放成一排,每块骨 牌 si 包含左右两个部分,每个部分赋予一个非负整数值,骨牌可做 180 度旋转,使得原来在左边的值变到右边,而原来 在右边的值移到左边,假设不论 si 如何旋转,L[i] 总是存储 si 左边的值,R[i] 总是存储 si 右边的值,status[i] 用于存储 si 的状态:当 L[i] ≤ R[i] 时记为 0,否 则记为 1,试采用分治法设计算法 求 =R[i]·L[i+ 1] 的最大值,以及当...

2021-11-02 21:08:11 1514

原创 C/C++ 递归算法,在二叉树中求位于先序序列中第k个位置的结点

基本的代码前期准备(创建二叉树)status creatTree(BiTree& T){ TElemType m; scanf_s("%c", &m); if (m == ' ')//若输入的为空格则表示该结点为空 { T = NULL; return ERROR; } else { T = (BiTree)malloc(sizeof(BiTNode));//开辟空间 T->data = m;//赋值 creatTree(T->lch

2021-11-01 22:10:40 1107

原创 C/C++用栈和队列实现停车场问题

问题:设停车场内只有一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出,汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n 辆汽车,则后来的汽车只能在门外的便道上等候, 一旦有车开走,则排在便道上的第一辆车即可开入,当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,当便道上汽车要离开时,排..

2021-11-01 18:59:43 1884

原创 C++/C数组循环右移空间复杂度O(n)实现

问题:已知一个长度为n的数组和一个正整数k,并且最多只能使用一个用于交换数组元素的附加空间单位,试设计算法得到原数组循环右移k次的结果基本思路:一个萝卜一个坑代码实现#include<iostream>int main(){ int a[5] = { 1,2,3,4,5 };//假设该数组是这样 int l ,i;//用于记录 l = i = 0;//l表示数组的下表值 int k = 3;//假设右移的移动单位是3 int n = 5;//数组长度为5 i

2021-10-31 21:39:57 381

原创 C++/C约瑟夫(Joseph)问题的代码实现

问题:约瑟夫(Joseph)问题的一种描述是:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码〈正整数〉,一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。问题分析:首先明确此为循环链表,记录n个人的密码,当第一个人报数,到第m个人时,输出他的密码并且将头指针指向m个人的下一位,同时再将报

2021-10-31 21:02:55 839

空空如也

空空如也

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

TA关注的人

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