自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 git新手学习和使用

一、git简介1、基本概念:git是一个开源的分布式版本控制系统。相对CVS和SVN是集中式的版本控制系统。集中式版本控制系统的版本库是集中放在中央服务器的,每次工作的时候都得从中央服务器获取最新的版本,完了以后再放回中央服务器。而分布式版本控制系统没有中央服器,每个人电脑上都有一个完整的版本库,可以自己操作不受任何人影响。2、版本库(Repository)版本库(Repo

2016-06-16 18:47:58 337

原创 二叉树的深度

思路一:递归遍历代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: int TreeDepth(TreeNode* pRoot) { if ...

2021-10-09 22:03:27 67

原创 删除链表中的节点

题目一:删除链表中的节点:1、时间复杂度为O(n),找到要删除链表的前一个节点,将该节点的next指向要删除的链表的next,然后删除该节点并置为NULL;2、时间复杂度为O(1),将要删除节点的后面的节点的值赋给删除的节点,将删除节点的next指向后面节点的next,然后删除后面的节点并置为NULL;注意:要考虑只有一个节点的情况,删除头节点也是尾节点;还要考虑如果要删除的节点是尾节点的情况,时间复杂度为O(n),要顺序遍历到尾节点的前一个节点,然后删除置为NULL;上述两种方法是基于要删除的

2021-10-09 21:27:44 2196

原创 链表中倒数第k个节点

思路:设置两个指针,第一个指针先走k步,第二个节点从起始点开始走,第一个节点走到末尾时,第二个节点也就是倒数第k个节点。代码:/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿...

2021-10-06 22:29:38 70

原创 链表中环的入口节点

思路:快慢指针->快指针一次走两步,慢指针一次走一步。结论:1、设置快慢指针,假如有环,一定会在环中相遇; 2、两个指针相遇后,两个指针分别在表头和相遇点重新出发,每次只走一步,最后一定相遇于环入口。验证结论: 1、快指针一次走两步,慢指针一次走一步,慢指针一旦入环,就当作是快指针追慢指针,最后一定能追上; 2、假设快指针走的路径为:a+b+c+b,慢指针走的路径为a+b,因为快指针是慢指针走的2倍,所以:a+b+c+b=2(...

2021-10-06 22:01:46 180

原创 【Linux】多路复用之—epoll

一、多路复用之——epollint epoll_create(int size);int epoll_ctl(int epfd,int op,int fd,struct epoll_event* event);int epoll_wait(int epfd,struct epoll_event* events,int maxevents,int timeout);1、e

2016-05-22 12:17:03 397

原创 【Linux】多路复用之—poll

一:多路复用之——poll#includeint poll(struct pollfd *fs,nfds_t nfds,int timeout)1、参数:struct pollfd{int fd                             关心的文件描述符short events                关心的事件short revents

2016-05-21 20:12:51 614

原创 【Linux】多路复用之—select

一:多路复用之——selectint select(int nfds,fd_set  *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval* timeout)  1、参数:   (1)nfds:需要监视的文件描述符数目;                     (2)readfds、writefds、ecceptfds:对

2016-05-20 21:21:08 383

原创 循环链表

#includeusing namespace std;typedef int DataType;class LinkNode{ friend class Slist;public: LinkNode(const DataType& x) :_date(x) , _prev(NULL) , _next(NULL) { }public: DataType _date

2015-09-19 15:36:12 350

原创 【C++】深拷贝

#includeusing namespace std;class String{public: //无参构造函数 String() :_ptr(new char[1]) { _ptr[0] = '\0'; } //有参构造函数 String(char* ptr) :_ptr(new char[strlen(ptr)+1]) { strcpy(_ptr, pt

2015-09-19 14:54:38 370

原创 【C++】写时拷贝COW

#includeusing namespace std;class String{public: //构造函数 String(const char* str="") :_str(new char[strlen(str)+1]) , _CountRef(new int(1)) { strcpy(_str, str); } //拷贝构造 String(const Str

2015-09-15 07:43:46 416

原创 【C++】实现单链表

#includeusing namespace std;typedef int DataType;struct LinkNode{ DataType _date; LinkNode* _next; LinkNode(const DataType& x) { _date = x; _next = NULL; }};class SList{public: //构造

2015-09-14 10:40:09 261

原创 【C++】实现顺序表

#pragma once#includeusing namespace std;#define DefauleCapacity 5typedef int DataType;class Seqlist{public: //构造函数 Seqlist() :_array(new DataType[DefauleCapacity]) { _capacity = Defau

2015-09-14 10:38:03 322

原创 【C++】实现万年历

/******************************************************************************************Purpose:声明并实现一个万年历类【腾讯面试题】Author:周蒙蒙Created Time:2015-8-19******************************************

2015-08-31 14:14:09 2316

原创 double my_atof(char *str)

编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)例如:“12.34“   返回12.34“ - 123.34“ 返回 - 123.34函数原型:double my_atof(char *str)#include#include#includedouble my_atof(char *str){ double ret = 0.0; int

2015-08-05 09:48:57 595

原创 动态链表增删改查及排序功能

主要功能的实现:#include "SeqList.h"void InitSeqList(SeqList * pSeq)//初始化{ assert(pSeq); pSeq->array = (DataType*)malloc(sizeof(DataType)*DEFAULT_CAPICITY); pSeq->size = 0; pSeq->capicity = DEFAULT_CA

2015-06-26 16:09:02 982

原创 实现位操作

//实现对一个8bit数据(unsigned char类型)的指定位的置0或者置1操作,并保持其他位不变#includevoid bit_set(unsigned char *p_data,unsigned char position,int flag){ unsigned char bit=1<<(position-1); if(flag)//置1操作 { *p_data=*p

2015-06-09 16:27:24 526

原创 【C语言】字符串操作函数my_strcpy

//实现字符串操作函数strcpy#include#includechar *my_strcpy(char *dest, const char *src){ char *ret = dest; assert((dest != NULL) && (src != NULL));//断言 if(dest == src) return dest; while(*dest++ = *sr

2015-05-22 13:09:24 744

原创 【C语言】字符串操作函数my_strcat

//实现字符串操作函数strcat#include#includechar *my_strcat(char *str1,char const *str2){ char *p=str1; assert((str1 != NULL) && (str2 != NULL)); while(*str1 !='\0') { str1++; } while(*str2 !='\0')

2015-05-22 13:07:40 824

原创 【C语言】字符串操作函数my_strcmp

//实现字符串操作函数strcmp#includeint my_strcmp(char *str1,char *str2){ while(*str1==*str2) { if(*str1=='\0') return 0; else { str1++; str2++; } } if(*str1>*str2) return -1; else r

2015-05-22 13:05:33 1024

原创 【C语言】实现一个简单的通讯录

#include#include"contact.h"void print_menu(){ printf("*******************************\n"); printf("***1>add 2>del ******\n"); printf("***3>search 4>modify ******\n"); printf("***

2015-05-20 14:14:02 2531

原创 两种方法实现判断当前机器是大端还是小端

大端:高位存低地址,地位存高地址小端:高位存高地址,低位存低地址//用联合的方式实现#includeunion UN{ int a; char c;};int main(){ union UN un; un.a=1; if(un.c==1) printf("little\n"); if(un.c==0) printf("big\n"); return 0;}

2015-05-17 13:22:28 1339

原创 结构体内存对齐规则

结构体内存对齐规则1、第一个成员在与结构体变量偏移量为0的地址处;2、其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处;       对齐数=编译器默认的对齐数 与 该成员大小的较小值;       vc中默认为对齐数为8       linux中默认对齐数为43、结构体总大小为最大对齐数的整数倍;4、如果嵌套了结构体,嵌套的结构体对齐到自己的最大对齐数的整数

2015-05-13 18:31:18 719

原创 用可变参数列表实现求n个数的平均值

va_list arg;声明一个va_list 类型的变量arg,它用于访问参数列表的未确定部分;va_start(arg,val);第一个参数是va_list的变量名,第二个参数是不确定参数的前一个参                               数;a_arg(arg,int);返回这个参数的值,并使用var_arg指向下一个可变参数,第一个参数是     

2015-05-11 21:26:50 782

原创 字符串翻转

//将student a am i 转换成 i am a student#include#include//翻转一个单词/*void reverse_string(char *l,char*r){ while(l<r) { char tmp; tmp=*l; *l=*r; *r=tmp; l++; r--; }}//由空格判断一个单词,调用reverse

2015-05-11 21:10:18 540

原创 在终端输入多行信息,找出包含“ould”的行,并打印改行

#include #include#define MAX 1000//读取字符串函数int getline(char line[],int max)//max为数组剩余长度{ char ch; int i=0; while(max>0 && (ch=getchar())!=EOF && ch!='\n') { line[i]=ch;//读取字符放到数组Line中 i++;

2015-05-11 20:57:00 575

原创 使用递归实现DigitSum()函数,输入一个非负整数,返回组成它的数字之和

#includeint DigitSum(int n){ if(n<10) return n; else return (n%10 + DigitSum(n/10));}int main(){ int ret1=DigitSum(9); int ret2=DigitSum(146); printf("%d\n",ret1); printf("%d\n",ret2);

2015-05-10 09:59:27 416

原创 使用递归实现n^k

#includeint fun(int n,int k){ if(k==0) return 1; if(k>0) { return n*fun(n,k-1); }}int main(){ int ret=fun(2,5); printf("%d\n",ret); return 0;}

2015-05-10 09:31:37 314

原创 判断1000-2000年之间的闰年,并输出

#include int main(){ int year=1000; for(year=1000;year<=2000;year++) { if((year%400==0)||((year%4==0)&&(year%100)!=0)) { printf("%d ",year); } } return 0;}

2015-04-11 20:55:48 694

原创 求十个数中的最大值

#include int find_max(int a[10],int len){ int max=a[0]; int i=0; for(i=1;i<len;i++) { if(max<a[i]) { max=a[i]; } } return max;}int main(){ int a[]={1,2,3,4,11,6,7,8,9,10}; in

2015-04-11 20:53:03 614

原创 不允许创建临时变量,交换两个数的内容(用异或实现)

#include int main(){ int a=10,b=20; a=a^b; b=a^b; a=a^b; printf("a=%d\nb=%d\n",a,b); return 0;}

2015-04-11 20:49:29 342

原创 不允许创建临时变量,交换两个数的内容(用加减乘除实现)

#include int main(){ int a=10,b=20; a=a+b; b=a-b; a=a-b; printf("a=%d\nb=%d\n",a,b); return 0;}

2015-04-11 20:48:10 340

原创 输出乘法口诀表

#include void fun(void){ int i=0,j=0; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%d ",i,j,i*j); } printf("\n");//注意换行 } }int main(){ fun(); return 0;}

2015-04-11 20:46:02 293

原创 求100-200之间的素数

#include int main(){ int i=0; int j=0; for(i=100;i<=200;i++)//优化1 for(i=101;i<=199;i+=2) { for(j=2;j<i;j++)//优化2 for(j=2;j<(i/2);j++) 优化3 for(j=2;j<(int)sqrt(i);j++) { if(i%j==0) bre

2015-04-11 20:44:16 323

原创 求无符号整型二进制数1个数的优化程序

#include int count_bit(unsigned int value){ int count=0; //15->1111 1111 & 1110 = 1110 while(value) //1110 & 1101 = 1100 { //1100 & 1001 = 1000 count++; //1000 & 0111 = 0000 v

2015-04-11 20:35:22 397

原创 返回无符号整形的二进制数1的个数

#include int count_one_bits(unsigned int value){ int i=1; int count=0; while(value!=0) { if((value%2)==1) count++; value=value/2; } return count;}int main(){ int ret=0; ret=count_

2015-04-11 20:27:07 375

原创 求两个整型变量的最大公约数

#include int yueshu(int n1,int n2){ while(n2!=0) { int ret=n1%n2;//辗转相除法 n1=n2; n2=ret; } return n1;}int main(){ int ret=yueshu(15,4); printf("%d\n",ret); return 0;}

2015-04-09 22:01:52 409

原创 使用递归实现厄密多项式

#include int hermite(int n,int x){ if(n<=0) return 1; else if(n==1) return 2*x; else return 2 * x *(hermite(n-1,x))-2*(n-1)*(hermite(n-2,x));}int main(){ int ret= hermite(1,2); printf

2015-04-09 17:18:06 335

原创 字符反向排列函数reverse_string(char *str)

#include void reverse_string(char *str){ int i = 0; int j = 0; int temp = 0; while(str[i] != '\0') { i++; } while(j < i) { temp = str[j]; str[j] = str[i-1]; str[i-1] = temp; j++;

2015-03-21 22:38:13 518

原创 实现追加函数char *my_strcat(char *dest,char *src)

#include char *my_strcat(char *dest ,char *src){ char *p; p = dest; while(*p != '\0') { p++; } while(*src != '\0') { *p = *src; p++; src++; } *p ='\0'; return dest;}void main(){

2015-03-21 21:16:42 889

空空如也

空空如也

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

TA关注的人

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