自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (9)
  • 收藏
  • 关注

原创 python的socket通信

一开始服务器先开,后开客户端,发现木有反应,后来自己研究发现要开两个shell才行。贴代码,菜鸟一枚,自己专研还是蛮开心的。#客户端import sockets=socket.socket()host=socket.gethostname()port=1234s.connect((host,port))print s.recv(1024)#服务器import soc

2013-04-05 23:12:46 1016

原创 调整数组顺序使奇数位于偶数前面

#include using namespace std;void transfer(int *L,int len){ //i,j指针一前一后 int i=0,j=len-1; while(i<j){ //如果L[i]为奇 if(L[i]%2==1) ++i; //如果L[j]为偶 if(L[j]%2==0) --j; if(L[i]%2==0 &

2013-03-28 19:06:59 636

原创 栈的push、pop序列

题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,po

2013-03-28 12:33:38 774

原创 判断平衡二叉树中所需要注意的问题

发现程序有问题,问题在d1>d2?d1:d2+1上'+'的优先级高于':',所以应该改为(d1>d2?d1:d2)+1//是否为平衡二叉树#include #include using namespace std;struct node{ node *lchild,*rchild; int value;};class list{public: l

2013-03-27 22:50:52 598

原创 利用队列实现层序遍历

#include #include using namespace std;struct node{ node *lchild,*rchild; int value;};struct Node{ Node *next; node* value;};//用链队class Queue{public: Queue(); void EnQueue(node* num

2013-03-27 18:24:26 1292

原创 求二元查找树的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入:     8    /  \  6      10 /\       /\5  7    9   11输出:      8    /  \  10    6 /\      /\11

2013-03-27 16:39:46 496

原创 异或交换时候的注意点(替代temp变量)

#include using namespace std;void reverse(char *str){ //n为字符串长度 int n=strlen(str)-1; for(int i=0;i<=n/2;++i){ str[i]=str[i]^str[n-i]; str[n-i]=str[i]^str[n-i]; str[i]=str[i]^str[n

2013-03-27 14:21:28 567

原创 翻转句子中单词的顺序

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。#include using namespace std;void reverse_part(char*,int pBegin,int pEnd);

2013-03-27 14:14:48 634

原创 二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:         8       /  \      6    10    / \    / \   5   7   9  11因此返回true。#include

2013-03-27 12:35:02 661

原创 二元树中和为某一值的所有路径(我看到网上很多答案是错的)

题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树                                            10                                           /   \

2013-03-27 10:48:55 928

原创 输出所有根节点到叶子节点的长度(以二叉排序树为例)

#include #include using namespace std;//节点struct node{ node *lchild,*rchild; int value;};//二元查找树class list{public: list(); //这里的m_print函数用做递归,print函数相当于外面的一个套子 void pri

2013-03-27 09:55:27 1297

原创 完全非递归方式解决二叉排序树向双向链表的转换(标准注释)

#include #include using namespace std;//节点struct node{ node *lchild,*rchild; int value;};//二元查找树class list{public: list(); void InOrder_transfer();private: node* root;};void list::

2013-03-27 08:39:54 849

原创 腾讯笔试题--递归编程(2)

题目:       对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?#include using namespace std;int count=0;void fun(int num,int step){ if(num<=0) return; if(step==1){ cout<<num<<"

2013-03-23 20:03:34 857

原创 堆排序

#include using namespace std;int L[]={0,50,40,60,30,70,10,90,80,20};//数组从L[1]开始int length=sizeof(L)/sizeof(int)-1;void Swap(int*,int,int);void HeapAdjust(int*,int,int);void HeapSort(int *L

2013-03-13 22:20:58 636

原创 在子类的构造函数中调用虚函数

#include using namespace std;class Base{public: Base() { Fuction(); } virtual void Fuction() { cout << "Base::Fuction" << endl; }};class A : public Base{public: A() { Fuction()

2013-03-11 21:25:35 997

原创 非递归前中后序遍历(多种方式)

#include #include using namespace std;struct Node{ Node* lchild; Node* rchild; char value;};class list{public: list::list(); void PreOrder(); void InOrder(); void PostOrd

2013-03-11 16:52:01 923

原创 带有错误的非递归遍历

#include #include using namespace std;struct Node{ Node* lchild; Node* rchild; char value;};class list{public: list(); void InOrder(); void PreOrder(); void AfterOrder();private: Node

2013-03-07 23:48:30 251

原创 (++a)+=(a++)和(++a)=(++a)+(a++)的区别

#include using namespace std;void main(){ int a=4; cout<<((++a)+=(a++))<<endl; //结果为10 cout<<a<<endl; //结果为11 system("pause");}#include using namespace std;void main(){

2013-03-01 21:18:46 15143 3

原创 传递的函数数组参数中使用sizeof()的注意点

//计算最大子数组#include using namespace std;//返回最大子数组的和,复杂度为O(n)int max_sub(int a[]){ int max=a[0],temp=0; //这里使用sizeof(a)/sizeof(int)是有问题的 for(int i=0;i<sizeof(a)/sizeof(int);++i){ if(a[i

2013-02-28 23:11:56 104

原创 例题1:勇士斗恶龙

题目:你的王国里有一条n个头的恶龙,可以雇佣骑士把它杀死,村里有m个骑士,能力值为x的骑士可以砍掉一个恶龙直径不超过x的头,且需支付金币x,怎样才能杀死恶龙并且支付金币最少?(一个骑士只能砍一个头,雇佣一次)#include using namespace std;void main(){ //这里偷懒不输入了,a[]表示恶龙的头的直径,b[]表示骑士的能力值 //int a[2]=

2013-02-25 23:27:19 1767

原创 fabonacci数列非递归

#include using namespace std;bool fibonacci(int n);void main(){ cout<<"输入一个fibonacci数列的长度:"<<endl; int n; cin>>n; if(cin.fail()){ cout<<"输入有误!"<<endl; exit(-1); } fibonacci(n); system(

2013-02-25 15:38:16 211

原创 输入一个正整数n,计算出1~n之间出现1的次数

//要求:输入一个正整数n,计算出1~n之间出现1的次数#include #include using namespace std;void solve();int input();int power(int count);void main(){ solve(); system("pause");}void solve(){ int n,c

2013-02-25 12:17:31 2270

原创 腾讯的笔试题(1)

1.考虑函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用中,属于不合法调用的是:A hello(5)     B.hello(5,8)     C.hello(6,"#")     D.hello(0,0,"#")答案是C,经过验证,其实就是考函数的重载。2.求输出结果#includeclass CBase{

2013-02-22 15:18:39 1040

原创 如何在vs2010中修改栈的大小

上次运行程序的时候提示栈溢出,oh,my god 程序栈空间不够用了,没关系,可以设置栈的大小,默认是1MB。选择 项目->属性->链接器->系统->堆栈保留大小,然后输入你想要的栈大小即可。

2013-02-21 19:10:30 8813

转载 C++virtual的例子(2)

#include #include using namespace std;class one{protected: float a;public: one() { a=0; } virtual float f1(float num) { return num/2; } float f2(float num) { return pow(f1(num),

2013-01-25 19:00:11 545

转载 一个构造和析构函数很经典的例子(继承相关)

今天整理的时候发现了这个程序,忘了是自己写的还是网上的,就写转载吧,例子很清楚,结果是B 2  A 1 C3,看看吧,看懂了构造就差不多懂了。#include using namespace std;class A{public: A(int i) { cout<<"class A constructor "<<i<<endl; } ~A() {

2013-01-25 18:34:09 392

转载 不用加减乘除实现a+b

#include using namespace std;char* add(int a,int b){ char *c; c = (char *) a; return &c[b];}void main(){ int result; result=(int)add(20000,300); cout<<result; getcha

2013-01-21 23:26:56 792

原创 估计没几个人能看懂我的KMP算法了,搞得有点复杂,有蛮多注释

//KMP算法实现#include #include using namespace std;//我承认KMP算法我搞得逻辑太复杂了void KMP(char* a,char* b){ int next[10]={1}; int i,j,count1,count2,flag=1; //计算模式串b的next[j] next[0]=0;//如果第一位出错 next[1

2013-01-20 21:27:11 478

转载 二叉排序树转换成双向链表

// 1:构造二叉查找树; // 2:中序遍历二叉查找树,因此结点按从小到大顺序访问,假设之前访问过的结点已经调整为一个双向链表,那么 // 只需要将当前结点连接至双向链表的最后一个结点即可,访问完后,双向链表也就调整完了 #include using namespace std; struct BSTreeNode { int m_nValue;

2013-01-19 11:37:52 974

原创 二叉排序树向双向链表的转换

//将二叉排序树转换成双向链表#include using namespace std;//定义节点struct node{ int num; node* Lnext; node* Rnext;};class list{public: list(); void change(node* p); void transform(); v

2013-01-18 21:52:02 956

原创 排序二叉树实现(比昨天的版本改进了些)

#include using namespace std;struct node{ int num; node* Lnext; node* Rnext;};class list{public: list();//构造函数,为了省略直接完成list的建立 void node_insert(int n);//n代表要插入的数字 void delet

2013-01-18 11:12:02 79

原创 二叉排序树的C++实现,包括难点删除

#include using namespace std;struct node{ int num; node* Lnext; node* Rnext;};//建立二叉排序树class list{public: list(); void node_insert(); //p为要删除的节点,p0为删除节点的前一个节点,当然两节点可能重合 //fla

2013-01-17 21:15:41 2327

原创 阿里巴巴易错题(我知道内存对齐,但还是倒下了)

#pragma pack(2)#include using namespace std;class A{ int i; union U { char buff[13]; int i; }u; void foo() { } typedef char* (*f)(void*); enum{red, green, blue} color;

2013-01-16 22:28:58 743

原创 二叉排序树+中序遍历

#include using namespace std;templatestruct node{ T num; node* Lnext; node* Rnext;};templateclass list{public: list(); void node_delete(T *p); void node_insert(T *p);

2013-01-16 18:23:31 197

原创 求两有序数组是否有相同元素

//判断两个有序数组中是否存在相同的元素#include using namespace std;bool comparation(int *a,int *b){ int i=0,j=0; while(i<sizeof(a)/sizeof(int) || j<sizeof(b)/sizeof(int)){ if(a[i]==b[j]) retu

2013-01-15 19:37:42 1371

原创 单链表反转

#include using namespace std;struct node{ int num; node* next;};class list{public: list(); void print(); void turnover();private: node* p; node* q; node* head;};

2013-01-15 17:23:59 625

原创 栈的顺序存储结构的C++实现

#include using namespace std;#define max 5templateclass stack{public: stack(); bool pop(T &m); //将出栈的元素给m bool push(T n);//将元素n进栈 void print();private: T a[max]; int top;

2013-01-13 19:38:19 1305

原创 单链表的C++实现

#include using namespace std;templatestruct node{ T num; node *next;};templateclass list{public: list(); ~list(); void tranverse(); void insert_node(int place,T n);

2013-01-12 14:42:42 627

原创 对于输入(使用cin)安全性和鲁棒性的小结

今天做了微软的几道试题,发现几乎都要求输入,那么使用C++输入我想最容易的是cin了吧,还想用stringstream?     针对cin其实有很多可以研究的地方如,cin.clear(),cin.sync().你要输入一个整数,如int temp;cin>>temp;cin.fail()或者cin.good()不一定反映出错误,比如输入1.1不报错,因为temp为整形。#inc

2013-01-02 14:25:01 1123

原创 微软试题:查找数组中最小的k个元素

题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 思路:一看到这道题思路就想直接从小到大排序,那么最小的k个为前k个元素,不过这样做复杂度为o(n^2).目测解决这题的复杂度规定在o(n),所以不采纳。那么用一个数组a[k]记录所存的k个最小值需要额外的空间复杂度,那么如果允许破坏原先的数组,那么就可以在原先的数组

2013-01-02 10:34:20 533

VS2010 命令补全

VS2010的命令提示工具,很强大,亲。

2012-10-06

linux shell 编程教材配套PPT

如果你对linux shell 编程感兴趣,那么恭喜你,这些PPT对冗长的书籍作了精炼的概括。

2012-10-06

计算机学习专业书目大全

如果你对计算机编程感到迷茫,可以选择这本书,这本书详细介绍了计算机编程方向的各类好书,1个积分绝对物超所值。

2012-10-06

C++builder6 编程实例

学习BCB6的珍贵教材,还等什么呢,下下来吧。

2012-10-06

C++boost库完全开发指南

C++ boost库 超越C++标准的存在,是学习C++的各位必须要掌握的。

2012-10-05

VS2010使用教程

VS2010使用教程,较为详细地介绍了VS2010的使用,适合初学者。

2012-10-05

空空如也

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

TA关注的人

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