自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 问答 (6)
  • 收藏
  • 关注

原创 TCP预先派生子进程服务程序,accept无上锁保护

okay,今天是我们linux服务器模型的第二篇—TCP预先派生子进程服务程序,accept无上锁保护。从字面上理解,就是在启动阶段派生一定数量的子进程,当各个客户连接到达时,这些子进程立即就能为他们服务。注意与我们第一篇的不同,我们第一篇是为每一个客户派生一个子进程,来一个,派生一个。另外值得注意的是,如果某个时刻,客户数量正好等于预先派生的子进程,那么对于下一个客户,依然能够执行三次握手,进行连

2015-06-18 22:44:06 921

原创 TCP并发服务器,每个客户一个子进程

在阅读完《unix 网络编程:卷一》之后,感觉作者真是unix下编程的大师级的人物。而对于我个人而言,每次阅读完一本技术书籍之后,一定还是得自己重新再写一遍程序(换点内容),复习书本中的内容(大致结构,或者说思想,相同),否则,你很难做到真的理解并掌握的地步。Okay,今天我带来的是服务器模型中的第一种,也是最基本最常用的一种模型–TCP并发服务器,每个客户一个子进程。先简单介绍一下:TCP并发服务

2015-06-10 20:14:09 2107 1

原创 哈希表

欢迎大家访问我的微博:http://weibo.com/u/2887401030我们都知道,对于数组,查询容易,插入和删除较难。而对于链表,插入和删除容易,查询较难(线性查询)。那么有没有一种数据结构,插入,删除,查询都较为容易的呢?当然有,他就是这篇文章的主角——哈希表(散列表)。直接看代码:#include<iostream> #include<cstdlib>using namespace

2015-04-16 15:36:05 567

原创 第一个有用的C++程序

这是一个雇员记录系统。 这个程序包含的功能有: (1)添加雇员的功能 (2)解雇雇员的功能 (3)雇员晋升的功能 (4)查看所有雇员的功能,包括过去以及现在的雇员 (5)添加所有当前雇员的功能 (6)添加所有以前雇员的功能程序分为三个部分:Employee类封装了单个雇员的信息,Database类管理公司的所有雇员,一个单独的UserInterface文件提供程序的接口。来看代码:

2015-04-04 16:31:43 665

原创 笔试题(1)

今天发现一道题,是某一个笔试的最后一道。我用C语言实现了一下。整体感觉不是很难,给大家分享一下。来看题目: 给定一个 query 和一个 text,均由小写字母组成。 要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。 例如, query 为“acbac”,text 为 “acaccbabb”, 那么 text 中的“cba”为最长的连续出现在 que

2015-04-02 16:46:32 646

原创 快速排序

欢迎大家访问我的微博:http://weibo.com/u/2887401030快速排序的基本思想是:用过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分继续排序,已达到整个序列有序的目的。直接来看代码:#include<stdio.h>#include<stdlib.h>void printAll(int *a,int len){

2015-04-01 16:47:49 506

原创 堆排序

堆是具有下列性质的完全二叉树:每个结点的值都大于等于其走有孩子节点的值,称为大顶堆;或者每个结点的值都小于等于其走有孩子节点的值,称为小顶堆。再看堆排序。堆排序就是利用堆(假设是大顶堆)进行排序的方法。它的基本思路是将待排序的序列造成大顶堆。此时,整个序列的最大值就是堆顶的根节点。将他移走(其实就是将其与堆数组的末尾元素交换,此时末尾就是最大值),然后将剩余的n-1序列重新构造成一个堆,这样就

2015-03-30 21:04:48 438

原创 C语言指针基础(4)

欢迎大家访问我的微博:http://weibo.com/u/2887401030接着前面的三篇,今天继续我们的C语言指针之旅。今天,还是主要为了加强我们的一级指针。还是一道字符串的题目,题目很简单,就是反转字符串,如char str[] = “asdqwe”;反转之后变成”ewqdsa”。 代码如下:#include "stdio.h"#include "stdlib.h"#include "

2015-03-26 17:13:41 468

原创 队列的链式存储

#include<stdio.h>#include<stdlib.h>#define MAXSIZE 20typedef int ElemType;typedef struct LinkQueueNode{ ElemType data; struct LinkQueueNode *next;}LinkQueueNode;typedef struct LinkQueue{

2015-03-26 15:06:40 289

原创 队列的顺序存储

#include<stdio.h>#include<stdlib.h>#define MAXSIZE 20typedef int ElemType;typedef struct SqQueue{ ElemType data[MAXSIZE]; int front; int rear;}SqQueue;SqQueue* Create_Queue(){ SqQ

2015-03-26 14:16:16 329

原创 栈的链式存储

#include<stdio.h>#include<stdlib.h>typedef int ElemType;#define MAXSIZE 20typedef struct LinkStackNode{ ElemType data; struct LinkStackNode *next;}LinkStackNode;typedef struct LinkStack{

2015-03-25 16:28:12 297

原创 栈的顺序存储

#include<stdio.h>#include<stdlib.h>typedef int ElemType;#define MAXSIZE 20 //Create_SqStack(capacity)typedef struct SqStack{ ElemType data[MAXSIZE];//unsigned int *data int top;}SqStack;S

2015-03-25 15:23:57 301

原创 线性表的链式存储

欢迎大家访问我的微博:http://weibo.com/u/2887401030#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct LinkListNode{ ElemType data; struct LinkListNode *next;}LinkListNode;typedef st

2015-03-24 17:42:27 305

原创 线性表的顺序存储

欢迎大家访问我的微博:http://weibo.com/u/2887401030#include<stdio.h>#include<stdlib.h>typedef int ElemType;#define MAXSIZE 20typedef struct SqList{ ElemType data[MAXSIZE]; int length;}SqList;SqList*

2015-03-24 16:23:17 294

原创 二叉树

#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void CreateBiTree(BiTree *T){ ElemType ch

2015-03-22 22:35:29 309

原创 C语言指针基础(3)

经过前面两篇的学习,相信大家对一级指针有了更深的理解。但是,这还是不够的。今天,我将讨论一下* 与 []这两个操作符的关系。因为前面 我是有时用*p,有时用p[0],可能有人不明白。比如对于int a[ ] = {1,2,3,4};int *p = a;在这里,a的值是第一个字符’a’的地址,p也指向了1的地址。也就是说两个p与a的值是相同的。接下来,我分别用a与p来遍历。#include <st

2015-03-20 14:24:37 280

原创 C语言指针基础(2)

在上一篇中,我们主要结合了画图,形象的展示了一级指针与内存的关系。在这一篇中,我们将继续通过一道关于字符串的题目来加强我们的以及指针。题目很简单,就是将一个字符串的前后的空格去掉,形成一个新的字符串。类似于char *str = ” asd “;前后去掉空格,形成一个新的字符串类似于 char *des = “asd”;下面是我们的代码:#include<stdio.h>#include<st

2015-03-16 18:23:31 293

原创 C语言指针基础(1)

C语言作为一门毅力几十年不倒的计算机语言,深受编程爱好者的喜欢。但是,许多人学习c语言(不管是计算机专业的,还是其他专业的),都会觉得C语言中的指针最难,甚至会因此放弃了c语言。但是,指针真的有那么难吗?下面就从这段代码开始我们的指针基础学习。 void main(){ int a = 10; int b = 20; int *p = &a;//p指向了a

2015-03-13 15:42:47 330

UNIX网络编程 卷2进程间通信(中文版·第2版)

UNIX网络编程 卷2进程间通信(中文版·第2版) unix,linux编程的经典书籍 绝对高清,中文版

2015-06-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除