![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
soygrow
这个作者很懒,什么都没留下…
展开
-
求解二叉树的深度
求解二叉树的深度可以采用递归和非递归的方式。递归实现的代码很是简单、易懂。而非递归实现代码较复杂。递归求解二叉树深度递归的结束条件有两个:1.该节点为NULL,返会0;2.当前节点的左右字数深度均求出,返会最大值 下面是递归实现的代码://递归求解二叉树的深度int BTreeDepth(BTree *root){ if (root == NULL)原创 2018-02-01 16:31:05 · 589 阅读 · 0 评论 -
判断二叉树是否是平衡二叉树
平衡二叉树(Balanced Binary Tree)又被称为AVL树:且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。主要实现思路:递归求左右子树的高度若左右字数高度之差大于1,则用一个变量标记。具体实现代码如下所示://判断二叉树是否是平衡二叉树int IsBalanceTree(BTree *root,bo原创 2018-02-01 16:23:58 · 238 阅读 · 0 评论 -
实现单链表反转
实现单链表反转主要思路:三个节点,开始时中间节点指向头结点,第一个节点指向NULL,第三个节点指向头结点下个节点。 将中间节点反转三个节点均向后移动一格判断是否是结束条件需要注意的是:链表在使用结束后,需要释放内存(如果是new的要delete,malloc的要free) 具体代码如下所示(包含递归和非递归两种方法):#pragma once#ifndef LIST_H原创 2018-02-01 16:21:56 · 307 阅读 · 0 评论 -
在链表中查找倒数第k个元素
第一种思路:首先对链表进行遍历,计算出链表总共的元素个数然后再次遍历链表,找到第n-k个元素,即为倒数第k个元素以上方法需要对链表进行遍历两次。第二种思路:两个链表指针,前一个指针指向第k+i个元素,后一个指针指向第i个元素,两个指针间隔k-2个元素这样只需遍历一次即可找到倒数第k个元素注意:链表使用结束后,记得释放每个申请的内存。这很重要!!!//文件名原创 2018-02-01 16:33:19 · 1028 阅读 · 1 评论 -
数组&指针
数组和指针 编写程序计算两个矩阵的相乘:注意:数组作为函数的参数怎么传递的二维数组怎么用指针表示// matrix_multiply.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include void matrix_multiply(int *m1,int *m2,int*r,int x,int y,int原创 2018-02-02 09:52:42 · 272 阅读 · 0 评论 -
结构体和指针
结构体和指针#include "stdafx.h"#include //#include "node.h"struct NODE{ int a; struct NODE *b; struct NODE *c;};struct NODE nodes[5] ={ {5,nodes+3,NULL}, {15,nodes+4,nodes+3}, {22,NULL,nodes+原创 2018-02-02 09:53:51 · 217 阅读 · 0 评论 -
递归与非递归实现二叉树的遍历
非递归实现二叉树的后续遍历首先后续遍历可以使用递归来实现。一般情况下,能用递归实现的问题都可以用栈来解决,只是递归更符合人的思维方式,代码相对来说较简单。但是不能说明递归的方式比栈的方式更快、更省空间,因为在递归过程中都是操作系统帮助用栈实现存储信息。下面使用递归的方式实现二叉树的后续遍历(包括先序和中序的实现,方法大致相同)://递归实现后续遍历二叉树void RecursionB原创 2018-02-02 10:06:27 · 381 阅读 · 0 评论 -
计算两个数组的交集
计算机两个数组的交集 方法思路:依次对两个数组进行遍历,直至其中一个数组结束(下面程序的方法)遍历两个数组,将两个数组放入哈希表中,并对元素个数进行统计,若为2,即为两数组的交集// MixedArray.cpp : 定义控制台应用程序的入口点。// #include "stdafx.h"#include using namespace std; //查找两个有序原创 2018-02-02 10:25:29 · 1434 阅读 · 0 评论 -
数组中重复次数最多的数
数组中重复次数最多的数该题前提是该数组是已经排列好的数组第一种思路:从头遍历数组,两个变量保存出现最频繁的数字和出现的次数每次都找到一个数字出现的最大次数,然后和之前保存的结果相比较,若该数字出现次数较大,那么就替换之前的保存结果,反之继续第二种思路:用map映射表,这里map会将变量初始化为0。第一个关键字保存数字,第二个关键字保存该数字出现的次数。下面是两原创 2018-02-02 11:16:20 · 3212 阅读 · 0 评论