已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/* 字符串倒置*/#include#includevoid func(char* str)int beg,end;char tem;for(beg=0,end=strlen(str)-1;begend;beg+,end-)tem=*(str+beg);*(str+beg)=*(str+end);*(str+end)=tem;puts(str);int main()char str=abcdefghijklmn;func(str);return 0;2/*约瑟夫问题*/#include#includestruct Nodeint data;struct Node* next;int main()int m,n,i;printf(input number: );scanf(%d,&m);struct Node* head,*r,*p,*q;head=(struct Node*)malloc(sizeof(struct Node);p=head;for(i=1;idata=i; p-next=r; p=r;p-next=head-next;p=p-next;printf(start is: );scanf(%d,&n);int j=1;while(jnext;j+;int s;printf(间隔为: );scanf(%d,&s); dofor(i=1;inext; q=p-next; printf(%d ,q-data); p-next=q-next; free(q); p=p-next; m-;while(m0);return 0;3/*String类的实现*/#include#includeusing namespace std;class Stringpublic:String(const char* data=NULL)if(data=NULL)m_data=new char1;*m_data=0;else m_data=new charstrlen(data)+1; strcpy(m_data,data); String(const String& other)m_data=new charstrlen(other.m_data)+1;strcpy(m_data,other.m_data);String(void)delete m_data;String& operator=(const String& other)if(this=&other) return *this; delete m_data; m_data=new charstrlen(other.m_data)+1; strcpy(m_data,other.m_data);void print(void)puts(m_data);private:char* m_data;int main()String s(liushaohui);s.print();String p(s);p.print();String* t=new String(haojiahuo);t-print();String q;q=s;q.print();return 0;4/*定义一个Person类,实现堆的功能*/#includeusing namespace std;class Personpublic:Person(void):m_head(NULL)Person(void)Node* p;while(m_head)p=m_head-m_next;delete m_head;m_head=p;void Push(const char* name,int age)m_head=new Node(name,age,m_head);void Pop(void)if(!m_head) return; else Node* p=m_head-m_next; printf(%s ,%dn,m_head-m_name,m_head-m_age); delete m_head; m_head=p; private:class Nodepublic:Node(const char* name=NULL,int age=0,Node* next):m_name(new charstrlen(name)+1),m_age(age),m_next(next)strcpy(m_name,name);char* m_name;int m_age;Node* m_next;Node* m_head;int main()Person p;p.Push(yangjian,12);p.Push(yangguang,14);p.Push(yangyong,14);p.Pop();p.Push(liuche,14);p.Push(liuxiu,14);p.Push(liuzhi,14);p.Pop();return 0;5/*把一字符串右移多少位*/#include#includevoid move(char* str,int step)char tem100;int n=strlen(str)-step;strcpy(tem,str+n);strcpy(tem+step,str);temstrlen(str)=0;strcpy(str,tem);int main()char str=liushaohui;move(str,4);puts(str);return 0;6/*双向链表的删除插入操作*/#include#includestruct Nodeint data;struct Node* pre;struct Node* next;struct Node* init()struct Node* head,*p,*r;head=(struct Node*)malloc(sizeof(struct Node);head-pre=NULL;head-next=NULL;r=head; int len,i,x;printf(input lenght:);scanf(%d,&len);for(i=0;idata=x; p-next=NULL;p-pre=r; r-next=p; r=p; printf(n); return head; void show(struct Node* head)printf(链表如下: ); struct Node* p=head-next;while(p)printf(%d ,p-data);p=p-next; void insert(struct Node* head,int i,int key)int j;struct Node* p;p=head-next;for(j=1;jnext; if(ji|!p) return; struct Node* t; t=(struct Node*)malloc(sizeof(struct Node); t-data=key; t-pre=p-pre; p-pre-next=t; t-next=p; p-pre=t;void delenode(struct Node* head,int i)int j;struct Node* p;p=head-next;for(j=1;jnext; if(ji|!p) return; p-pre-next=p-next; p-next-pre=p-pre; free(p);int main()struct Node* head;head=init(); show(head); insert(head,3,9);show(head); delenode(head,3);show(head); return 0;7/*字符串的拷贝比较连接求长度操作*/#include#includechar* strcpy(char* str1,const char* str2)assert(str1!=NULL)&(str2!=NULL);char* tem;tem=str1;while(*str1+=*str2+)!=0);return tem;int strlen(const char* str)int len=0;assert(str!=NULL);while(*str!=0)len+;str+;return len;char* strcat(char* str1,const char* str2)assert(str1!=NULL)&(str2!=NULL);char* tem=str1;while(*str1!=0) str1+; while(*str1+=*str2+)!=0); return tem;int strcmp(const char* str1,const char* str2)assert(str1!=NULL)&(str2!=NULL);int ret,n;while(!(ret=*str1-*str2)&str1&str2)str1+;str2+;if(ret0) n=1; else n=0; return n;int main()char str130;char str2=yanggaung;strcpy(str1,str2);puts(str1);int len=strlen(str1);printf(%d n,len);char str3=yangyong;strcat(str1,str3);puts(str1);printf(%dn,strcmp(str1,str3);return 0;8/*字符串变数字 数字变字符串*/#include#include#includevoid stoi(const char* str)assert(str!=NULL);int sum=0;while(*str!=0)sum=sum*10+(*str-0);str+;printf(%dn,sum);void itos(int data)char str10;int i=0;while(data)stri=(char)(data%10+48);i+;data=data/10;stri=0;int beg,end;char tem;for(beg=0,end=strlen(str)-1;begend;beg+,end-)tem=*(str+beg);*(str+beg)=*(str+end);*(str+end)=tem;puts(str);int main()char str=123456;stoi(str);int data=9876;itos(data);return 0;9/*冒泡排序 插入排序 二分查找*/#include#includevoid Bubble(int data,int len)int i,j,tem;for(i=0;ilen-1;i+)bool flag=true;for(j=0;jdataj+1)tem=dataj;dataj=dataj+1;dataj+1=tem;flag=false;if(flag) break;void Insert(int data,int len)int i,j,tem;for(i=1;i0&temright) return -1; int middle=(left+right)/2; if(datamiddle=key) return middle; else if(datamiddlekey) return Binifind(data,middle,right,key); else return Binifind(data,left,right-1,key);int main()int data1=1,43,54,23,756,64,432,464,3,765;int data210;memcpy(data2,data1,40);Bubble(data2,sizeof(data2)/sizeof(data20); Insert(data2,sizeof(data2)/sizeof(data20);int i;for(i=0;i10;i+) printf(%d ,data2i); printf(n); printf(input: ); int key; scanf(%d,&key); printf(%dn,Binifind(data2,0,sizeof(data2)/sizeof(data20),key)+1);return 0;10/*单链表反转*/#include#includestruct Nodeint data;struct Node* next;void reverse(struct Node* head)if(head=NULL) return;struct Node* pre,*cur,*ne;pre=head;cur=head-next;while(cur)ne=cur-next;cur-next=pre;pre=cur;cur=ne;head-next=NULL;head=pre;int main()struct Node* head,*r;head=(struct Node*)malloc(sizeof(struct Node);head-next=NULL;r=head;printf(input number:);int num,i,n;scanf(%d,&num);for(i=0;idata=n;p-next=NULL;r-next=p;r=r-next;reverse(head);struct Node* s=head-next;while(s)printf(%d ,s-data);s=s-next;printf(n);return 0;11/*判断字符串是否回文*/#include#includeint test(const char* str)int beg,end;int n=1;for(beg=0,end=strlen(str)-1;begend;beg+,end-)if(*(str+beg)!=*(str+end)n=-1;break;return n;int main()char str=abcdefgffdcba;printf(%dn,test(str);return 0;12/*判断整数为回文数*/#includeint test(int data)int sum=0;int n,tem;tem=data;while(data)sum=sum*10+data%10;data=data/10;if(sum=tem) n=1; else n=0; return n;int main()int n=123421;printf(%dn,test(n);return 0;13/*大小写转换*/#include void upper(char* str)while(*str!=0)if(*str=a&*str=z) *str-=32; str+;int main(void)char str=liushaohui;upper(str);puts(str);return 0;14./*一的个数*/#includevoid func(int data)int count=0;while(data)count+;data=data&(data-1);printf(%d n,count);int main()int data=127;func(data);return 0;15./*假设现有一个单向的链表,但是只知道只有一个指向该节点的指针p,并且假设这个节点不是尾节点,试编程实现删除此节点*/#include#include#includestruct Nodeint data;struct Node* next;int main()struct Node* head,*p,*r,*s;head=(struct Node*)malloc(sizeof(struct Node);head-next=NULL;r=head;printf(input number:);int cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年济南历城区八年级第二学期数学期中考试试题以及答案
- 新汽车基础制造 5
- 肉羊羔羊育成期饲养管理规程
- 运动后营养补充搭配指南
- 拖拉机年检维修保养制度
- 沉睡会员客户唤醒营销服务方案
- 排污许可自行监测执行记录规范
- 葡萄避雨栽培生产管理指引
- 甜菜根腐线虫防治技术措施
- 客户退单退费处理管理规定细则
- TSG 31-2025工业管道安全技术规程
- 2026年离婚登记申请书
- 中型水库管理岗位责任制度
- 2026校招:中国农业发展真题及答案
- 2026年人形机器人(Optimus类)项目商业计划书
- 2026中国新闻社招聘应届高校毕业生11人考试参考试题及答案解析
- 火花探测检查制度规范
- DB41∕T 2877-2025 道路深层病害高聚物注浆处治技术规范
- 化工职业卫生培训课件
- kuka库卡机器人培训
- (2026年)皮下抗凝剂注射规范业务学习课件
评论
0/150
提交评论