- 博客(22)
- 收藏
- 关注
原创 AVL树
AVL平衡二叉查找树概述:介绍: 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。特点:1.本身首先是一棵二叉搜索树。2.带有平衡条件:每个结点的左右子树的高度之差的绝对值(平衡因子)最多为...
2018-04-22 21:32:48 298
原创 插入排序的实现
插入排序(默认从小到大)插入排序是排序算法的一种,它不改变原有的序列(数组),而是创建一个新的序列,在新序列上进行操作。基本思想及举例说明 插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。 在实际使用中,通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素。第一轮...
2018-04-22 21:23:05 307
原创 I/O复用三种方式的比较
select,poll,epoll都是IO多路复用的机制。 I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O...
2018-04-17 19:27:44 952
原创 Select函数
在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待) 从 select函数返回后,内...
2018-04-17 17:05:44 319
原创 面向对象程序设计
面向对象与程序设计: 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一...
2018-04-15 20:01:40 354
原创 计算一年有多少秒
//输入一个年份,判断这一年有多少秒;//分别判断平年和闰年//闰年能被4整除并且不能被100整除或者可以被400整除#include<iostream>using namespace std;void second(int year){ if((year%4 == 0 && year%100 != 0) ||year%400 == 0)//判断是否是闰年...
2018-04-15 17:52:04 6806
原创 虚函数
虚函数: 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行...
2018-04-15 14:05:49 221
原创 带外数据
带外数据: 使用与普通数据不同的通道独立传送给用户,是相连的每一对流套接口间一个逻辑上独立的传输通道。也称为紧急数据,相比于普通数据有更高的优先级,总是立即发送。 传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方。为了发送这些数据,协议一般不使用与普通数据相同的通道,而是使用另外的...
2018-04-14 20:50:07 241
原创 判断质数
#include<iostream>using namespace std;int main(){ int a=0; // num因数的个数 int num=0; // 输入的整数top:while(1)//top为goto跳转到的标记 { cout<<"请输入一个整数:"; cin>>num; if(num == 0 || num...
2018-04-14 17:46:34 314
原创 希尔排序
希尔排序的基本思想是:先将整个待排序列分割成若干子序列分别进行进行直接插入排序,等到整个待排序列基本有序时,再对全体记录依次进行直接插入排序。希尔排序也叫缩小增量排序,是1959年由D.L.Shell提出来的。希尔排序的具体实现方法和步骤:a、选择一个步长序列d1,d2,d3,...,dk,其中,di > dj,dk = 1;b、按步长序列个数K对序列进行K趟排序c、每趟排序,根据对应的步长...
2018-04-11 18:57:42 185
原创 内存覆盖
//memmove()函数解决内存覆盖问题#include<iostream>#include<assert.h>using namespace std;void *memmove(void *dest, const void *source, size_t count){assert((NULL != dest) && (NULL != sour...
2018-04-11 18:49:19 389
转载 简易五子棋
#include<iostream>#include<iomanip>using namespace std;const int X = 21; //棋盘行数const int Y = 21; //棋盘列数char p[X][Y]; //定义棋盘int m=0;//定义临时点,保存输入坐标int n=0; void display() //输出棋盘{...
2018-04-11 17:49:37 275
原创 Socket
socket的概念: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算...
2018-04-11 17:00:25 360
原创 STL的组件
1,、容器各种数据结构,用来存放数据,STL容器是一种class template。2、算法各种常用算法如sort,search,copy,erase等等,从实现的角度讲,STL算法是一种function template3、迭代器 扮演容器和算法之间的胶合剂,是所谓的“泛型指针”,从实现的角度讲,迭代器是一种将operator*,operator ->,operator++,operat...
2018-04-10 20:36:10 176
原创 图的遍历
//图的遍历#include <iostream>using namespace std;#include <queue>#define SIZE 10struct Edge{ Edge(int v):destvalue(v),link(NULL){} int destvalue; Edge *link;};struct Vertex{ Vert...
2018-04-10 20:24:26 289
原创 Strcat和Strcpy的实现
#include<assert.h>#include<stdio.h>#include<iostream>using namespace std;char* my_strcat(char *strDest, const char *strSrc){ assert(strDest != NULL && strSrc != NULL);...
2018-04-10 19:58:25 372
原创 注释转换C++->C
//头文件ConvertComment.h#ifndef _CONVERTCOMMENT_H#define _CONVERTCOMMENT_H#include<iostream>using namespace std;void EventPro(char ch);void EventProAtNo(char ch);void EventProAtC(char ch);...
2018-04-10 17:43:26 169
原创 二叉树的四种遍历遍历以及查找拷贝
#include<iostream>#include<queue>using namespace std;class Node//创建节点{public: Node(char c):m_value(c),m_left(NULL),m_right(NULL){}//初始化参数 char m_value; Node *m_left; Node *m_righ...
2018-04-08 17:24:47 257
原创 简易滚动条实现
#include<iostream>#include<windows.h>using namespace std;void main(){ char str[] = "include<string>"; int len = strlen(str); int k = 0;//统计显示框的长度 for(int i=0;i<len;++i) {...
2018-04-08 17:07:18 273
原创 TCP与UDP的比较
TCP:面向连接 传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP:面向无连接 用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能...
2018-04-03 17:10:50 542
原创 UDP通信
UDP服务器程序:#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>int main(){ int sockSer = s...
2018-04-03 16:50:03 254
原创 Linux中读写锁--读锁优先
my_pthread_rwlock.h:#pragma once#include<pthread.h>#include<stdio.h>typedef struct{ pthread_mutex_t rw_mutex; pthread_cond_t rw_condreaders; pthread_cond_t rw_condwrite...
2018-04-03 16:43:02 613 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人