c 面试题之二叉树的镜像。请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode* m_pLeft;
BinaryTreeNode* m_pRight;
};[......]
c 面试题之二叉树的镜像。请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode* m_pLeft;
BinaryTreeNode* m_pRight;
};[......]
c 面试题之树的子结构。输入两棵二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
BinaryTreeNode *m_pLeft;
BinaryTreeNode *m_pRight;
};[......]
c 面试题之合并两个排序的链表。输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然递增排序。链表结点定义如下:
[......]
c 面试题之二叉树中和为某一值的路径(图示)。输入一棵二叉树以及一个整数,打印出二叉树里面结点值的与为输入整数的所有路径。由树的根结点开始往下一直到叶节点所经过的结点形成一条路径。二叉树结点的定义如下:
struct BinaryTreeNode
{
int m_nValue;
Bina[......]
c 面试题之复杂链表的复制。请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任意结点或者NULL。结点定义如下:[......]
c 面试题之二叉搜索树与双向链表实例代码介绍。面试题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
二叉树结点的定义:
struct BinaryTreeNode
{
int m_nValue;
BinaryT[......]
输入一个字符串,输出该字符串中字符的所有组合。例如输入abc,它的组合有a、b、c、ab、ac、bc、abc。在前面学习全排列算法时,讲到了如何用递归的思路求字符串的排列。同样,本题也可以用递归的思路来求字符串的组合。假设在长度为n的字符串中求m个字符的组合。可以先从头扫描字符串的第一个字符。针对第[......]
在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图就是一种符合条件的摆放方法。请求出总共有多少种摆法。
解决这个八皇后问题通常需要用递归,而递归对编程能力的要求比较高。因此有不少面试官青睐这个题目,用来考察应聘者的分析复杂问[......]
有很多人都觉得快速排序很难理解,但是假如把快速排序背下来又很快会忘记,那么怎么理解快速排序呢?以下文章尽量用最简单的话语来讨论一下什么是快速排序算法。要直接默写出快速排序还是有一定难度的,因此现在就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。
快速排序由于[......]
c++快速排序算法实现代码示例:
void qsort_z(int sdata[], int low, int high)
{
int pivot = 0;
if (low < high)
{
pivot = partition_z(sdata, low, high);[......]