C/C++
火炙宸熙
让未来的自己感谢现在的你
展开
-
二叉树的镜像
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。void MirrorRecursively(BinaryTreeNode *pNode){ if((pNode == nullptr) || (pNode->m_pLeft == nullptr && pNode->m_pRight)) return; BinaryTreeNode *pTemp = pNod原创 2017-01-28 14:04:42 · 250 阅读 · 0 评论 -
树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构struct BinaryTreeNode{ double m_dbValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};bool DoesTree1HaveTree2(BinaryTreeNode* pR原创 2017-01-28 13:57:56 · 234 阅读 · 0 评论 -
合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按 照递增排序的。ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ if(pHead1 == nullptr) return pHead2; else if(pHead2 == nullptr) return pHead1; L原创 2017-01-28 13:51:45 · 260 阅读 · 0 评论 -
归并排序
#include<cstdio>void Mergearray(int *a, int left, int mid, int right, int *tmp) { int i = left; int j = mid +1; int k = 0; int m = mid; int n = right; //二路归并 while(i <= m &原创 2017-01-25 11:52:47 · 217 阅读 · 0 评论 -
希尔排序
#include<cstdio>void ShellSort(int a[], int n){ int d, j, x, i; d = n/2; while(d>=1) //循环至增量为1时结束 { for(i = d; i < n; i++) { x = a[i]; //获取序列原创 2017-01-25 11:30:55 · 212 阅读 · 0 评论 -
二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 例如 : 把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。int NumberOf1(int n){ int count = 0; while (n) { ++count; n = (n - 1) & n; } return cou原创 2017-01-23 21:28:26 · 215 阅读 · 0 评论 -
顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。#include <cstdio>void PrintMatrixInCircle(int** numbers, int columns, int rows, int start);void printNumber(int number);void PrintMatrixClockwisely(int** numbers, int原创 2017-01-23 21:13:16 · 204 阅读 · 0 评论 -
明明的随机数
明明的随机数题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n原创 2016-09-08 07:19:50 · 319 阅读 · 0 评论 -
原串翻转
原串翻转题目描述请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。测试样例: "This is nowcoder" 返回:"redocwon si sihT"代码:class Reverse {public:原创 2016-09-07 22:57:33 · 269 阅读 · 0 评论 -
C与C++ enum区别
#include#includeenum color{yellow, red, purple, white, green, black, orange};int main(){enum color c;for (c = yellow; c {printf("%2d", c);}printf("\n");system("pause");retu原创 2016-08-09 20:06:33 · 620 阅读 · 0 评论 -
查找字符串中出现一次且第一次出现的字符
原理:利用哈希表的算法进行查找,创建一个能存储256个数的数组,第一次对出现的字符进行统计,第二次查找出现一次的字符并返回.#include#includechar FirstNotRepeatingChar(char *pString){if (pString == NULL){return '\0';}const int tableSize原创 2016-08-09 20:45:21 · 1817 阅读 · 0 评论 -
C与C++ struct区别
#include#includestruct student{int age;char *name;};int main(){ student st;st.age = 20;st.name = "张三";printf("age = %d, name = %s\n", st.age, st.name);system("pause");原创 2016-08-09 20:16:34 · 222 阅读 · 0 评论 -
内存四区模型
内存四区模型流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行1、内存四区:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(转载 2016-08-09 19:54:24 · 196 阅读 · 0 评论 -
运算符重载
#include using namespace std;//a+biclass Complex{public:int a;int b;public:Complex(int a = 0, int b = 0){this->a = a;this->b = b;}void printCom(){cout }};原创 2016-08-09 19:41:21 · 172 阅读 · 0 评论 -
宏定义
#define 标识符 标记序号#undef 未知标识符给顶下列定义:#define cat(x, y) x##y宏调用cat(var, 123)将生成var 123, 但宏调用cat(cat(1, 2), 3)没有定义: ##阻止了外层调用的扩展,产生cat(1, 2)3, )3不是一个合法的记号, 采用下列定义可实现二层宏定义:#de原创 2016-08-09 19:03:53 · 273 阅读 · 0 评论 -
快速排序
算法原理:取最左边的元素作为一个基值base,将数组分为大于base的区间和小于base的区间,利用递归算法直到排序完成。下面是用c语言实现的产生随机数的算法。#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define ARRAYLEN 10int Division(int a[], int left原创 2017-06-10 20:28:56 · 278 阅读 · 0 评论