自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(28)
  • 收藏
  • 关注

原创 Sock Demo 增加结构体的定义和传输

先来声明下本项目的设计目标吧。项目由已工作的师兄从自己现在所在项目组的任务简化抽象而来。设计一个基于Socket或基于HTTP的服务器,服务内容是提供一种简单的key/value映射关系的管理与查询下面的所有操作都是通过结构体Node来传递的:struct Node {    char key[KEY_SIZE];    char value[VALUE_SIZE];};

2014-03-05 14:43:07 192

转载 Linux socket 传输和接受结构体

Linux程序设计 Linux socket send and recevie structure  最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享。  Socket中的send函数可以发送字符串,但不能直

2014-03-05 09:48:48 349

原创 Sock Demo

写了个Demo,完成基本的客户端服务器通信,只为熟悉函数,日后再此基础上完善并增加功能。客户端:#include#include#include#include#include#include#include#define MAXLINE 4096int main(int argc, char** argv){ int sockfd, n; ch

2014-03-03 14:44:22 167

转载 struct sockaddr和struct sockaddr_in

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性:1 地址类型: ipv4还是ipv62 ip地址3 端口相应的,头文件有如下定义: C代码  include     struct socka

2014-03-03 14:07:24 242

转载 Socket编程基础

一些基础内容,摘自以下blog:http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输

2014-03-03 11:30:58 150

转载 用Java实现按字节长度截取中英文数字字符串的方法总结

方法一//jdk1.4.2.05Java代码 /**   * @author cn   * @param s 要截取的字符串   * @param length 要截取字符串的长度->是字节一个汉字2个字节   * return 返回length长度的字符串(含汉字)  */  private static String getTit

2014-02-20 22:28:07 174

原创 微软等数据结构与算法面试100题 第三题

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。#include using namespace st

2014-02-19 21:45:37 142

转载 微软等数据结构与算法面试100题 第二题

2.设计包含 min 函数的栈。定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。ANSWER:Stack is a LIFO data structure. When some element is popped from the stack, the status will recover

2014-02-19 21:05:32 135

转载 C++基础 指针和引用(int*、int&、int*&、int&*、int**)

相信很多CPPers跟我一样,曾经在指针和引用里徘徊了很久很久。经常弄混指针和引用,尤其是见到如题中列出那些用法,着实是伤脑经。后来,在项目中用着用着,就能搞清楚区别了,算是会用吧。然而,对于一个Programmer,最忌讳的就是不知其所以然,会用和懂是两番天地。停留在会用的人,始终是原地打转;而懂的人,一通百通,能举一反三。本文,就如题的指针和引用的用法做一个介绍。首先我

2014-02-19 19:39:32 139

转载 微软等数据结构与算法面试100题 第一题

第一题题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整指针的指向。 参考了July的整理。表示感谢。  10      / /  6  14/ / / /4  8 12 16  转换成双向链表4=6=8=10=12=14=16。分析:由上面的例子可以看到,在对于树进行遍历的时候使用了中序

2014-02-19 18:51:27 125

原创 输入一个有序数组,和一个数k,输出数组中所有三个数的和为k的组合

博文:http://blog.jobbole.com/11745/ 几种常见排序算法的视觉图。可以方便理解各种排序的思想,其中堆排序和希尔排序可能光看图看不明白,建议搜一下。博文:http://blog.csdn.net/ios_long/article/details/7019718  指针和内存相关。里面有几个很典型的小例子。最近问这事的人挺多的,这帖子里写的比较清楚。题目1:输入

2014-01-07 15:27:58 220

原创 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6=1+2+3, 编程找出1000以内的所有完数。

#include #include#include#define N 1000int cal_factor(int a);int cal_sum(int data[],int m);int main(){ int number; printf("1000以内的所有完数如下所示:\n"); for(number=1;number<=1000;number++) { if

2014-01-06 17:01:56 233

原创 求cos(x)的近似值

#include #include #define PI 3.1415926double calculateCos(double x, double e);int main(){ double s, e, x; int xx; printf("input the angle:\n"); scanf("%d",&xx); x=xx*PI/180;

2014-01-06 16:45:36 463

原创 输入一个字符串,输出该字符串中字符的所有排列

#include #include void exchange(char *a,char *b);int permutation(char *str,int start,int end);int main(){ int end; char a[100]; printf("Please input an string!\n"); scanf("%s",&a

2014-01-06 16:05:49 164

原创 用两个栈实现队列

题目1:(难度1) 输入一个字符串,判断它是不是回文字符串。 题目2:(难度2) 用两个栈实现队列 假设你拥有一种栈结构,使用两个栈实现下面的队列结构,要求支持 push 和 pop 操作: typedef struct Queue {     Stack s1, s2; } Queue; 第一题#include #include #defi

2014-01-06 14:42:34 144

原创 实现一个简单的计算器(不要求除法)

实现一个简单的计算器(不要求除法):如输入:12+3*(5+6)*8输出:276感谢徐帅的代码,以下为改良版。#include #include #include #define LEN 100#define MAX_LEN 100typedef struct Element{ int mark;//表示当前元素是数还是操作符,1 表示数,-1表示操

2014-01-04 21:34:52 151

原创 阶乘因式分解 & 蛇形填数

题目1:阶乘因式分解(一)    给定两个数m,n,其中m是一个素数。    将n(0    例:n=16,m=2,则输出15题目2:蛇形填数    在n*n方阵里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:        10 11 12 1     9 16 13 2     8 15 14 3     7  6  5 4     

2014-01-03 21:34:50 163

原创 在计算机中用图中的方块图表示迷宫,每个方块或为通道(白色),或为墙(黑色)

题目一:在计算机中用图中的方块图表示迷宫,每个方块或为通道(白色),或为墙(黑色)。所求路径必须是简单路径,即求得的路径上不能重复出现同一通道块。 题目二:设计一个二分查找函数,对输入的一个非降序的数组a和数x,若a中存在与x相等的元素,则输出此元素的下标,否则输出-1。第一题直接上panda的、#include #include struct stack

2014-01-02 19:57:41 227

原创 AB两个人玩一个游戏。先任意给定一个字母串,每个人每次从中删掉任意一个字母

AB两个人玩一个游戏。先任意给定一个字母串,每个人每次从中删掉任意一个字母,两个人轮流进行,如果剩余的字母序列是严格单调递增的(按字典序a 1 模拟这个游戏,输入任意字符串(小写),能判断输赢2 输入一字符串,如果两个人都足够聪明(即如果有赢的方案,都不会选输的方案 ),甲先开始,判断甲能赢么?今日博客:http://blog.csdn.net/flyyyri/ar

2013-12-28 14:00:28 204

原创 文件"rand_3w.txt"中有三万个随机的、各不相等的正整数,写一个函数,求第k小的数。(如1、2、3、4、5,中第3小的数为3)

1. 文件"rand_3w.txt"中有三万个随机的、各不相等的正整数,写一个函数,求第k小的数。(如1、2、3、4、5,中第3小的数为3)2. 博文中第一个是关于二级指针的,自己写下二级指针删除单向链表节点的操作。http://blog.csdn.net/hjj414/article/details/17487055http://coolshell.cn/articles/1

2013-12-27 14:10:43 191

转载 Linus:利用二级指针删除单向链表

本文转自 酷壳 – CoolShell.cn 作者:LeoLinus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding。下面是Linus的教学原文及翻译——“At the opposite end of the spectrum

2013-12-27 13:08:47 122

原创 将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例

1. 写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间有一个空格。如输入1990,应输出“1 9 9 0”。 2. 将1,2,3,4,5,6,7,8,9共9个数分成三组,组成3个三位数,且使这3个三位数构成1:2:3的比例,例如:3个三位数192,384,576满足以上条件.192:384:576=1:2:3。试求出所有满足条件的3个三位数。 #i

2013-12-27 10:32:00 954

原创 给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序排列

给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序排列,例如: N1->N2->N3->N4->N5->NULL>N1->N2->N3->N4->N5->NULL pHEAD = N1,pSTART = N5,返回这个N5->N4->N3->N2->N1->NULL N1->N2->N3->N4->N5->NULL>不允许额外分配存储空间,不允许递归,可以

2013-12-25 20:22:39 263

原创 有n级台阶,每步上台阶只能上1级或者2级或者3级。问一共有多少种上完这n级台阶的走法?

难度1:要求以动态规划解决上述问题难度2:要求以递归解决上述问题#include #include #include int getMaxValue(int n,int ci[],int vi[],int w,int *list[]){ int max=0,i,j,num,t; int listTemp[n]; int content,value;

2013-12-24 16:58:46 482

原创 背包问题

腾妃新买了个容量为W的帅气包包,现有n件新衣服可装入其中。放入第i件衣服耗费的空间是Ci,得到的价值是Vi。求将哪些衣服装入大包可使价值总和最大。#include #include #include int getMaxValue(int n,int ci[],int vi[],int w,int *list[]){ int max=0,i,j,num,t;

2013-12-23 18:21:48 172

转载 Josephu问题的数学解法

今天重新做了次Josephu问题,之前做的是使用链表来实现的,直接模拟了整个过程,这次使用了数学解法。Josephu问题:编号为0到N-1的N个人围成一圈,然后从1开始报数,报到M的那个人被杀掉,剩下的人接着从1开始报数,求最后的幸存者编号。首先对于对于第一轮:0, 1, 2, ......, M-2, M-1, M, M+1, ......N-2, N-1 ---

2013-12-21 21:54:27 126

原创 n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。用链表实现最简单了,数组的话可能要加很多的判断,逻辑搞不好会出错。链表的C实现不熟悉,用别人的程序改的。panda程序有点高大上。都贴在下面对比下吧。#

2013-12-21 16:30:24 167

原创 随机分配座位,共50个学生,使学号相邻的同学座位不能相邻

首先贴出原参考答案,出处不详。#include #include #include #define STUDENT_NUM 50 int student[STUDENT_NUM] = {0};bool IsInSet(int pos, int number) // bool 表达式。 作用是判断学生number 是否已分配过座位position。{

2013-12-19 19:38:59 445

空空如也

空空如也

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

TA关注的人

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