C++
Mark周末
这个作者很懒,什么都没留下…
展开
-
中跟遍历,输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)假设元素无重复,采用中跟遍历,不包含##这种,因为中庚遍历可以确定一颗二叉树。解答步骤第一步:声明结构体struct Node{ int val; Node *LC; Node *RC; Node(int k){ this->val=k; LC=NULL; RC=NULL; ...原创 2019-12-11 12:50:03 · 163 阅读 · 0 评论 -
二叉树 先根遍历 中跟遍历 后跟遍历 迭代+递归实现代码
二叉树 先根遍历 中跟遍历 后跟遍历结构体:struct Node{ int val; Node *LC; Node *RC; Node(int k){ this->val=k; LC=NULL; RC=NULL; }};函数:void preOrder(Node *root){//先根遍历就是DFS呀 递归实现 if(root==NULL){ re...原创 2019-12-10 22:39:31 · 1093 阅读 · 0 评论 -
c++数据结构 队列和栈
栈头文件:#include<stack>常用操作:定义:stack<int> s;s.empty(); //如果栈为空则返回true, 否则返回false;s.size(); //返回栈中元素的个数s.top(); //返回栈顶元素, 但不删除该元素s.pop(); //弹出栈顶元素, ...原创 2019-12-10 21:33:18 · 166 阅读 · 0 评论 -
链表反转 迭代+递归实现 学习递归心得
链表反转 可以参考blog 链表翻转的图文讲解(递归和迭代两种实现)迭代实现:好懂Node* ReverseList(Node *head){ Node *p=head; Node *q=p->next; while(p->next!=NULL){ q=p->next; p->next=p->next->next; q->next=h...原创 2019-12-10 16:26:11 · 132 阅读 · 0 评论 -
字节跳动面试 输入两个值n和k,n表示我们有从1到n个整数,然后将这些整数都字符串化之后按字典排序,找出其中第K大。
题目:输入两个值n和k,n表示我们有从1到n个整数,然后将这些整数都字符串化之后按字典排序,找出其中第K大的。例如:n=15,k=5.那么1-15字符串化之后排序如下:1,10,11,12,13,14,15,2,3,4,5,6,7,8,9。其中第5大的就为13。求解: 限定n<100,求解一百以内的排序。思路:1,10,11,12,13,14,15,16,17,18,19,2,20,...原创 2019-12-10 13:48:45 · 1790 阅读 · 0 评论 -
C++二维数组传参,创建空间问题 vector代替
一、传参问题:1.形参为二维数组, 并给定第二维长度。必须给出后面的维度大小声明:int findK(int arr[][3], int rows, int cols, int k);调用:findK(arr,n,m,k);缺点:必须在声明中给出第二维度的大小2.形参为指针的指针声明:int findK(int **arr, int rows, int cols, int k...原创 2019-12-10 11:31:05 · 608 阅读 · 0 评论 -
有序数组平方以后不重复元素个数
给个有序数组,然后求元素平方后不重复的元素个数,例如[-10, -10, -5, 0, 1, 5, 8, 10]直接方法:int NotRep(int a[],int n){ int *b= new int[n]; int k=0; bool flag=false; for(int i=0;i<n;i++){ int temp=a[i]*a[i]; //a[i]**2 f...原创 2019-12-09 22:58:09 · 978 阅读 · 1 评论 -
循环有序数组 二分查找算法 迭代实现
在 [4,5,9,23,1,2,3] 循环有序的数组中查找关键词 K。上次递归实现不是很好,就当是练习递归了,见blog代码如下:int FindK(int a[],int k,int n){ int high,low; high=n-1; low=0; while(high>low){ int mid=(high+low)/2; if(a[mid]>a[low]...原创 2019-12-09 21:51:26 · 170 阅读 · 0 评论 -
C++ vector用法和传参
C++ vector优点和用法优点:提供了很多现有函数,可以直接调用,空间大小浮动(与静态数组相比优势)用法:见blog c++详细用法初始化之前:即获得空间以前不能访问。vector<int> a;for(int i=0;i<10;i++) a[i]=i;访问错误,改为:vector<int> a(10);for(int i=0;i<...原创 2019-12-01 14:15:51 · 1109 阅读 · 0 评论 -
C++ string和char 转换
C++ string和char 转换String转为charstring a="huawei";char *p= (char *)a.c_str();char转为stringa=p;More in blogstring需要头文件#include string原创 2019-12-01 11:41:43 · 607 阅读 · 0 评论 -
C++实现 堆排序
A. 堆排序概念和思想:1.概念:(小堆排序为例,利用完全二叉树,使根节点的值最小,其他节点的值均小于其左右子节点#如果有的话#) 优点:找第N大的值。2. 思想:不用数组的第一个元素即a[0],可以发现父子节点关系是 a[i] a[2i] 和 a[2i+1]。所以不需要二叉树数据结构,只需要数组模拟的二叉树即行。2.1. 步骤分为: 初步建堆 和 n-1交换2.2. 分为两个函数 ...原创 2019-11-20 23:07:29 · 279 阅读 · 0 评论 -
C++排序 插入排序 冒泡排序 快速排序 以及调用排序
C++排序问题1.c++里面可以直接调用 sort函数排序(在包含 algorithm 头文件的情况下)void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);cmp用于自定义升降序,可参考c++调用排序函数示例代码:#include<iostream>#include...原创 2019-11-20 15:04:55 · 695 阅读 · 0 评论 -
C++传入数组以后使用sizeof计算数组长度问题
C++传入数组以后不能使用sizeof计算数组长度欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导...原创 2019-11-19 15:57:32 · 526 阅读 · 0 评论