![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作准备(面试)
hopegrace
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣!
展开
-
头文件命名冲突,判断整数是否为2的幂次方,GDB多线程调试,makefile文件编写
1.在c++中,如果自己写的头文件(.h)与源程序中的代码的变量发生命名冲突,如何解决?1).命名空间2).extern#ifndef _GLOBLE_H #define _GLOBLE_H extern int a; extern int b; extern int c...原创 2019-10-22 11:47:44 · 141 阅读 · 0 评论 -
对并查集数据结构的理解
并查集是一种树形的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示,进行快速调整。案例:朋友圈题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3}...转载 2019-07-22 22:20:27 · 251 阅读 · 0 评论 -
6.哈夫曼树及哈夫曼编码
WPL=1*45+3*(13+12+16)+4*(5+9)=224 此处的WPL可以视为最终编码得到二进制编码的长度,共224位。利用哈夫曼树剋设计出总长度最短的二进制前缀编码。案例:字符串“alibaba”用哈夫曼编码共有多少位?a:3 b:2 l:1 i:1 wpl=3*1+2*2+3+3=13...原创 2019-07-22 22:16:43 · 3217 阅读 · 0 评论 -
树的应用
对二叉树进行中序遍历可以得到一个递增的有序序列。1.判断一棵二叉树是否为二叉查找树思路:一棵二叉查找树的中序遍历结点值是从小到大有序的。时间复杂度:O(n)int prev1 = INT_MIN;typedef struct node { int data; node* lchild, *rchild;}BiTree;int JudgeBST(BiTree* bt){...原创 2019-07-22 22:15:27 · 167 阅读 · 0 评论 -
二叉树的应用 c++ 实现
1.判断两颗二叉树是否相同(左右子树不能旋转):可以采用递归方法实现struct binaryNode { int m_ivalue; binaryNode* m_pLeft; binaryNode* m_pRight;};bool _isEqual(binaryNode* node1, binaryNode*node2){ if (node1 == NULL&&...原创 2019-07-22 22:11:10 · 451 阅读 · 0 评论 -
二叉树的遍历(递归和非递归的方法)
一.使用递归的方法进行二叉树的遍历二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现三种遍历,则要用栈来模拟实现(递归也是用栈实现的)。三种遍历方式的递归实现1、先序遍历——按照“根节点-左孩子...原创 2019-07-22 22:04:06 · 726 阅读 · 0 评论 -
数据结构之-----排序算法
算法的稳定性:如果待排序的两个元素Ri,Rj,其对应的关键字keyi=keyj,且在排序前Ri在Rj的前面,如果排序后Ri还在Rj的前面,则称这种排序算法是稳定的,否则称排序算法是不稳定的。内部排序和外部排序:内部排序是指在排序期间,元素全部存放在内存中的排序。外部排序是指排序期间元素无法全部同时存放在内存中,必须在排序过程中根据要求不断地在内外存之间移动的排序。1.插入排序1)插入排...原创 2019-07-26 15:49:36 · 777 阅读 · 0 评论 -
数据结构算法之----查找(学习总结)
基本概念查找结构(查找表):用于查找的数据集合称为查找结构(查找表),他可以是一个链表,也可以是一个数组或其他数据类型。对查找表进行的操作一般有四种:1)查询某个特定的数据元素是否在查找表中。2)检索满足条件的某个特定的数据元素的各种属性。3)在查找表中插入一个数据元素。4)在查找表中删除某个数据元素。如果一个查找表的操作只涉及1,和2的操作,则无须动态的修改查找表,此类查找...原创 2019-07-31 10:09:24 · 1704 阅读 · 0 评论 -
用栈实现队列和用队列实现栈 c++实现
1.用栈实现队列使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返...原创 2019-07-21 16:04:06 · 2028 阅读 · 0 评论 -
对图---数据结构得理解和应用
图的基本概念线性表可以是空表,树可以是空树,但图不可以是空图。(图的定点集V非空,边集E可以为空)此时图只有顶点没有边。在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。含有n个顶点的无向完全图有n*(n-1)/2条边。在有向图中,如果任意两个顶点之间都存在方向相反的两条弧,则称该图为有向完全图。含有n个顶点的有向完全图有n*(n-1)条有向边。2.图中每个顶点的度--...原创 2019-07-24 09:50:23 · 739 阅读 · 1 评论