摘要: #include<iostream>using namespace std;int continumax(char *outputstr,char *inputstr){ int length=0,max=0;char *tempstr=inputstr;//C风格字符串需要分配内存 while(*inputstr) { if(*inputstr>'9'||*inputstr<'0') { length=0;inputstr++; } if(*inputstr<='9'&&*inputstr>= 阅读全文
posted @ 2012-10-23 14:44 代码改变未来 阅读(207) 评论(0) 推荐(0) 编辑
摘要: I am student 变成 student am I#include<iostream>using namespace std;void reverse(char *str,int n){ char* p = str+n-1; while (str<p) { char c = *str; *str = *p; *p=c; str++;p--; }}int main(){ char s[100]; while(gets(s)) { reverse(s,strlen(s)); int i=0,j=0; while(s[i]) { if(s[i]==' ') { 阅读全文
posted @ 2012-10-20 20:56 代码改变未来 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 二分查找,按从小到大排序int BinarySearch(int a[],int x,int n){ int low=0;int high=n-1; while(low>1;//防止溢出,移位更高效 if(x==a[middle])return middle; if(x>a[middle])low=middle+1; else high=middle-1; } return -1;//元素未找到} 递归版本:int BinSearch(int Array[],int low,int high,int key/*要找的值*/) { if (low>1; ... 阅读全文
posted @ 2012-09-04 20:15 代码改变未来 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 如何能够判断出是否是有环路,及如何找到这个环路的入口呢?解法如下: 当p2按照每次2步,p1每次一步的方式走,发现p2和p1重合,确定了单向链表有环路了接下来,让p2回到链表的头部,重新走,每次步长不是走2了,而是走1,那么当p1和p2再次相遇的时候,就是环路的入口了。这点可以证明的:在p2和p1第一次相遇的时候,假定p1走了n步骤,环路的入口是在p步的时候经过的,那么有p1走的路径: p+c = n; c为p1和p2相交点,距离环路入口的距离p2走的路径: p+c+k*L = 2*n; L为环路的周长,k是整数显然,如果从p+c点开始,p1再走n步骤的话,还可以回到p+c这个点同时... 阅读全文
posted @ 2012-08-31 22:05 代码改变未来 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 二叉排序树插入结点BSTree *InsertBST(BSTree *bst,int key) //插入节点{ BSTree *p,*s,*pre; s=(BSTree*)malloc(sizeof(BSTreeNode)); s->data=key; s->lchild=s->rchild=NULL; if(bst==NULL) { bst=s; return bst; } p=bst; while(p) { pre=p;//指向其父节点 if(p->data==key)return p; else if(p->data>key)p=p->lchil 阅读全文
posted @ 2012-08-29 23:02 代码改变未来 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: 递归方法 非递归方法 阅读全文
posted @ 2012-08-26 22:42 代码改变未来 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 删除二叉排序树中值为k的结点用被删结点左子树最右下的结点的值代替被删结点的值,然后删去最右下的结点#include "stdafx.h"#include<iostream>using namespace std;typedef struct BSTreeNode{ int data; struct BSTreeNode *lchild,*rchild;}BSTree;int _tmain(int argc, _TCHAR* argv[]){ return 0;}void Delete(BSTree *bst,int x){ BSTree *f,*p=bst; w 阅读全文
posted @ 2012-08-18 21:48 代码改变未来 阅读(5457) 评论(1) 推荐(0) 编辑
摘要: 1.将二叉树转换为顺序存储结构,按完全二叉树形式存储,无元素的结点当做虚结点。按层次顺序遍历二叉树,设根结点编号为0,设置一队列,将结点及其序号入队。出队时将结点及其编号写入顺序存储结构。#include "stdafx.h"#include<iostream>using namespace std;typedef struct BTreeNode{ int data; struct BTreeNode *lchild,*rchild;}BTree;int _tmain(int argc, _TCHAR* argv[]){ return 0;}typedef s 阅读全文
posted @ 2012-08-16 22:01 代码改变未来 阅读(2325) 评论(0) 推荐(0) 编辑
摘要: 1.删除以元素值x为根结点的子树,并释放其空间#include "stdafx.h"#include<iostream>using namespace std;typedef struct BTreeNode{ int data; struct BTreeNode *lchild,*rchild;}BTree;int _tmain(int argc, _TCHAR* argv[]){ return 0;}void DeleteXTree (BTree *bt)//删除以bt为根的字树{ DeleteXTree(bt->lchild); DeleteXTre 阅读全文
posted @ 2012-08-15 20:42 代码改变未来 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 1.递归判断相等#include "stdafx.h"#include<iostream>using namespace std;typedef struct BTreeNode{ int data; struct BTreeNode *lchild,*rchild;}BTree;int _tmain(int argc, _TCHAR* argv[]){ return 0;}bool equal(BTree *p,BTree *q){ if(!p&&!q)return true;//若都为空 else if(!p&&q||p&am 阅读全文
posted @ 2012-08-14 23:13 代码改变未来 阅读(374) 评论(0) 推荐(0) 编辑