- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 平衡二叉树
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <string.h>#define LH 1 //left high#define EH 0 //equal high#define RH -1 //right high#define TRUE 1#define FALSE 0typedef struct
2017-07-27 19:32:49 286
原创 二叉排序树
二叉排序树或者是空树,或者是具有系列性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值均小于他的根结点的值 若它的右子树不空,则右子树所有结点的值均大 于它的根节点 它的左右子数也分别为二叉排序树 目的:提高查找和插入删除关键字的速度#include <stdio.h>#include <stdlib.h>#define FALSE 0#define TRUE 1//二叉
2017-07-27 11:18:16 278
转载 只有五行的Floyd最短路径算法
我们来想一想,根据我们以往的经验,如果要让任意两点(例如从顶点a点到顶点b)之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转即a->k->b,才可能缩短原来从顶点a点到顶点b的路程。那么这个中转的顶点k是1~n中的哪个点呢?甚至有时候不只通过一个点,而是经过两个点或者更多点中转会更短,即a->k1->k2b->或者a->k1->k2…->k->i…->b。比如上图中从4号城市到3号
2017-07-26 10:24:02 469
转载 Dijkstra算法(单源最短路径)
Dijkstra算法(单源最短路径) Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该
2017-07-26 10:06:15 453
原创 最小生成树——普利姆算法(prim)
这是摘抄自《大话数据结构》中的一句话,其实我是没看懂,但是看了代码,加上百度了之后,普利姆算法的步骤: 1、先假设之后一个节点,并同时把这些顶点的权值放在一个数组里,还有创建一个数组保存最小权值顶点的下标,找到这个节点边上的最小权值,这边的另一个节点为K 2、从节点K开始,再次寻找,把与k有关的权值放在一个数组里,若是比数组的值小就修改,同时修改下标的值,否则不改 3、重复2的步骤好吧,我也不
2017-07-25 13:09:24 1599
原创 下面有关继承、多态、组合的描述,说法错误的是?
下面有关继承、多态、组合的描述,说法错误的是?A、封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏 B、继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展 C、隐藏是指派生类中的函数把基类中相同名字的函数屏蔽掉了 D、覆盖是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同答案: BC解析: A
2017-07-25 10:10:58 2105
原创 广度(宽度)优先搜索:队列
上一章详细的写出了深度优先遍历的四种情况的程序: http://blog.csdn.net/zscfa/article/details/75947816这一次来详细说说广度优先遍历: 广度优先搜索类似于二叉树的层序遍历,它的基本思想就是:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问过的邻接顶点w1,w2,…,wi,然后再依次访问w1,w2,…,wi的所有未被访问过的邻接顶点;再从这些
2017-07-25 00:37:56 1189
原创 图的深度优先遍历(递归、非递归;邻接表,邻接矩阵)
众所周知,图有经典的两种遍历方式:深度优先遍历和广度优先遍历 首先我们就来说说深度优先遍历,其他的不说了,直接上代码,分为递归个非递归的方式啊首先是递归的方式实现的,比较简单,考虑到存储结构由邻接矩阵和邻接表,有分为两种:一种是邻接矩阵存储的递归,简单点说就是用数组来存储;另一种是邻接表存储的,也就是说用链表的方式存储的一、递归 1、邻接矩阵:#include<stdio.h>#define
2017-07-23 19:59:55 24321 9
原创 下列有关静态成员函数的描述中,正确的是:
下列有关静态成员函数的描述中,正确的是: A、静态数据成员可以在类体内初始化 B、静态数据成员不可以被类对象调用 C、静态数据成员不受private控制符作用 D、静态数据成员可以直接用类名调用答案:DA,静态成员属于类,而不是属于某个特定的对象,它是由该类的所有对象共享的,因此不能在类的构造方法中初始化 B,静态成员属于该类所有对象公有,可以被类对象调用 C,静态成员收private的
2017-07-21 21:57:17 10174
原创 请问对一个排好序的数组进行查找,时间复杂度为()
请问对一个排好序的数组进行查找,时间复杂度为() A、O(n) B、O(lgn) C、O(nlgn) D、O(1)
2017-07-21 21:50:14 1987
转载 常用排序算法总结
目录冒泡排序 鸡尾酒排序 选择排序 插入排序 二分插入排序 希尔排序 归并排序 堆排序 快速排序 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时
2017-07-20 17:10:58 359
原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int data; if(stack2.empty()
2017-07-20 16:17:14 385
转载 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。 #include<stdio.h> #include<errno.h> #include<string.h> #include<stdlib.h> #include<pthread.h> #define
2017-07-20 11:25:15 552
原创 下面哪些调用转换支持可变长度参数
下面哪些调用转换支持可变长度参数 A、cdecl B、stdcall C、pascal D、fastcal答案:A__cdecl __fastcall与__stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通
2017-07-20 09:30:58 679
原创 设计模式——单例模式
单例模式:一个类只生成一个实例对象。要从生成唯一一个实例,构造函数就要设为私有,一般有两种模式:一位饿汉式,只有在空的时候分配内存class Singleton{private: Singleton() {} static Singleton* instance;public: static Singlenton* getInstance() {
2017-07-19 10:59:26 208
原创 重载赋值运算符(c++)
String& String::operator=(const String &str){ if(this == &str)//判断是否为本身,是的话就返回 { return *this } delete []str_; str_ = NULL; int len = strlen(str.str_)+1; str_ = new
2017-07-19 10:21:09 431
原创 基于栈的非递归方法实现二叉树
#include<iostream>#include<vector>#include<stdlib.h>using namespace std;struct BiNode{ char data; struct BiNode *left; struct BiNode *right;};typedef struct BiNode Node;typedef Node* Li
2017-07-18 23:46:34 474 1
原创 用链表实现二叉树的实现(递归)
/*链表的递归方法实现二叉树*/#include<stdio.h>#include<stdlib.h>#include<string.h>struct BiNode{ char data; struct BiNode *lchild; struct BiNode *rchild;};typedef struct BiNode Node;typedef Node* L
2017-07-18 18:45:57 1135
原创 c++笔试面试题43-144问
43、面向对象的三个特征多态、封装、继承 44、C++语言的优缺点优点:c++是面向对象的程序设计,在高级语言中,处理运行速度最快,而且还兼容了c语言C++语言十分灵活,功能十分强大,它的优点在于性能和类层次结构设计C++十分严谨、精确和数理化,标志定义很细致C++语法思路层次分明、相呼应,语法结构是显示的,明确的 缺点:语言过度复杂和标准库的过度苍白
2017-07-18 10:33:31 528
原创 C语言———42道自整理面试题
1、C语言之父?丹尼斯里奇 2、C语言的特点?具有出色的可移植性,能够在多种不同的体系的软硬件平台运行具有简单紧凑,使用灵活的语法机制,能够直接访问硬件运行效率高 3、什么是库文件和库函数库文件:只能使用函数和变量,但是看不见函数和变量的实现库函数:只能使用函数,但是无法看到实现 4、动态库和静态库的区别静态库:编译速度慢,可执行文件体积大,代码
2017-07-13 19:11:24 446
socket.rar
2019-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人