04 2013 档案
摘要:问题:这两种操作都用到了递归,别人说递归好理解,我真的不觉得递归好理解,只是递归的代码看起来简单。下面代码是求高度的另一种方法。递归计算高度是从底向上计算的,因此叶子节点高度为0;方法真的很巧妙。。。比如getTreeHigh(a->lchild)返回的就是a的左子树的高度,getTreeHigh(a->lchild)返回的就是a的右子树的高度。int getTreeHigh(BinTree btree){ int depth; if(btree==NULL) depth=0; else { depthleft=getTreeHigh(btree->lchild); ...
阅读全文
摘要:问题:再一次验证自己功底的薄弱,对那些大侠只有仰慕的份。。。简单说一下自己的感受,递归的实现是个栈,每次函数结束时,退回到上一层,函数结束默认为return。二叉树的各种非递归实现用到的数据结构是栈。这次用重温了STL中stack的用法。代码:#include <iostream>#include <cstdlib>#include <stack>using namespace std;typedef struct node{ char data; struct node *left; struct node *right;}*BinTree;void Cr
阅读全文
摘要:问题:比较简单^^代码:#include <iostream>using namespace std;#define MAXSIZE 1000typedef struct tMatrix{ int row; int col; int data;}TMatrix;typedef struct matrix{ TMatrix arr[MAXSIZE]; int r,c,num;}Matrix;void CreateTMatrix(Matrix &c){ int rs,cs,ns; int p,q,e; cout<<"please input the row
阅读全文
摘要:问题:很经典,也很难,理解了一个下午。。。终于把KMP算法思想弄明白了。改天继续看看。昨天写的,今天继续补充,KMP算法是由三个人发明的,KMP就是三个人名字的首字母。下面开始讲这个经典的算法:1、刚开始比较时,如果相等,下移;2、继续比较,遇到不相等的,假设位置为j,然后找j之前最大长度相等的前缀和后缀。这个怎么找不好理解,但理解了就很简单。用子串(现在作为主串)的第一个字符和j位置之前的第一个字符比较,如果相等,继续比较,第二个字符和j之前的第二个字符往后比较,。。。记录最大长度相等的前缀和后缀。3、如果没有,则主串和子串都增1。next数组的求法:首先,初始化。next[0]=-1;ne
阅读全文
摘要:代码:#include <iostream>using namespace std;int main(){ char *s="helolophp"; char *s1="lop"; char *c=s1; int len=0; while(c[len]!='\0') { len++; } int i=0,j=0; for(;s[i]!='\0';i++) { if(s1[j]==s[i]) { j++; if(j==len) { cout<<"匹配成功的起始位置是:"<&l
阅读全文
摘要:问题:字符串结尾记得加'\0';发现自己代码写的真烂,逻辑太简单了。。。代码:#include <iostream>using namespace std;int main(){ char *s1="hello"; char *s2="world"; char *c; char *c1; int len1,len2; len1=len2=0; c=s1; while(c[len1]!='\0') len1++; c=s2; while(c[len2]!='\0') len2++; c1=(cha
阅读全文
摘要:问题:一定要记得保存指针的地址。代码:#include <iostream>using namespace std;int main(){ char s1[]="helloworld"; char s2[]="hellochina"; char *c1=s1; char *c2=s2; char *c3; int length1=0,length2=0; while(s1[length1]!='\0') length1++; while(c2[length2]!='\0') length2++; if(leng
阅读全文
摘要:问题:STL学得真不过关啊 ,用到时就像不起来,while(cin.get(c))在结束时,先换行,即按下回车键,在按ctl+z键,代码是看了别人之后,自己重写的。STL还是要好好学,真的很有用,可以吧复杂的问题变得简单。代码:#include <iostream>#include <vector>using namespace std;int main(){ vector<char> s; char c; int beg,len; while(cin.get(c)) s.push_back(c); cout<<"please inpu
阅读全文
摘要:第十九篇星光 接连三天的英语论文翻译,让我倦了,累了,于是为了放松,有接近疯狂的玩斗地主,整个神经接近崩溃的边缘。 从今天开始还是静心看我的代码吧,知道自己英语菜的不行。 这一个星期,生物钟乱了,听着那些无病呻吟的声音,想不明白,整出来,真没意义,生命因此而贬值。 今天还算比较正常的一天吧,崭新,就像星光。 还是作息规律些吧,努力前行! 找到属于自己的那颗星和光。 好好学吧,C++和PHP,加油,实际很简单!
阅读全文
摘要:问题: 跟之前想的不一样,以为就是个链表,结果实现时就出问题了。 lqueue->rear要不断的后移***因此,每次入队的时候要找到lqueue->rear,因此每次入队是要后移lqueue->rear。^^代码:#include <iostream>#include <cstdlib>using namespace std;typedef struct LinkQueue{ int data; struct LinkQueue *front; struct LinkQueue *rear;}*LQueue;void initLQueue(LQueu
阅读全文
摘要:问题:主要是队列为空和满的条件. 为空:cqueue->front==cqueue->rear 为满(cqueue->rear+1)==cqueue->front代码:#include <iostream>#include <cstdlib>using namespace std;#define MAXSIZE 20typedef struct CQueue{ int front; int rear; int data[MAXSIZE];}*CirQueue;void initCQueue(CirQueue &cqueue){ cqueu
阅读全文
摘要:It is the first to go out with my classments. we get on the bus,and after half an hour,we reach the destination.I feel excited.The building is so beautiful.and xiaoZhe say it is just city.We laugh.Lives are full of fun.We need to feel the air and into the feeling. urban or village,is the key?we sho.
阅读全文
摘要:问题:今天累了,没心情写,但我知道路漫漫,还是要坚持,要进步。顺序队列比较简单,明白原理就行。注:判断队列为空的条件:squeue->front==squeue->rear;代码:#include <iostream>#include <cstdlib>using namespace std;#define MAXSIZE 20typedef struct SQueue{ int data[MAXSIZE]; int front; int rear;}*SeqQueue;void initSeqQueue(SeqQueue &squeue) //初始
阅读全文
摘要:问题:建立顺序栈还是比较简单的。主要是一开始在入栈操作中每次调用初始化栈函数,结构出错。代码:#include <iostream>#include <cstdlib>using namespace std;#define MAXSIZE 20typedef struct SeqStack{ int stack [MAXSIZE]; int top;}*stackNode;void initStack(stackNode &stack){ stack=(stackNode)malloc(sizeof(struct SeqStack)); if(!stack) {
阅读全文
摘要:问题:我用的是尾插入法,主要是在输出的时候循环条件不要用错了^^,昨天查资料时遇见了一批“外星人”,今天看循环链表时又遇见“外星人”了**!贴代码:#include <iostream>#include <cstdlib>using namespace std;typedef struct CircleList{ int data; struct CircleList *next;}*CList;void createCList(CList &clist){ CList head,node; int c; clist=(CList)malloc(sizeof(s
阅读全文
摘要:问题:在分配空间时,遇到问题定义一个结构体:typedef struct dLinkListNode{int data;struct dLinkListNode *prior;struct dLinkListNode *next;}*dLinkList,dListNode;dList=(dLinkList)malloc(sizeof(dListNode));与dList=(dLinkList)malloc(sizeof(dLinkList));是不一样的,即指针和结构体的大小不一样,不要想当然。指针的问题真的小心,一不小心就出错。代码:#include <iostream>#inc
阅读全文
摘要:第十八篇不放弃的担当在社会的一次又一次的变革中,我还是我。遥远的距离,不是你我的障碍,我依然可以看到你。 枫叶纷纷落,为红尘,我只亦凡人。逃脱不了你的美丽。在眷恋你的一回眸,千年的感动,或许因为你的存在。我的感情很冷,却曾被你燃起的火热。 天外天的世界,可我只能看到你。 坚持的力量,不放弃的担当,源为你。我的透过眼里的深情折射,等待你的回应。在林夕的安然里,你我心有灵犀。枫叶飞飞舞,为留恋,你款款的身姿,共舞。尘光交错中,看到你的美。 愿为了你的感动,不在楼台亭宇,不需要,不在小桥流水,细腻不是因为环境的左右。坚持的力量,永不放弃的担当,为了你的心有灵犀,我刚毅。
阅读全文
摘要:第十七篇 静水流深最近感冒了,断断续续的学习,其苦,我自己清楚。 我一直追寻最完美的自己,从未止步。 历史在前进,留下了太多的不完美。在有限的人生中,在艰难的道路中坚持自己,煎熬的度过,还是平静的忍耐?浮华或者聒噪,也走不近我的内心,平静如水,静水流深。我渴望的人生在恬淡中流淌,我知道不可能。激流遇到礁石,便会激起千层浪花。浪花还会在前进。 我渴望静水流深的人生,或许是一种完美的呈现。 一种健康的人生,坚持的力量,就像树林深处传来的天籁,让你享受自由的解脱。一直在做着选择,努力的选择,选择在正确的道路上看到柳暗花明,选择承担的负重和责任。不平坦,就像吵杂的声波。可是在越过不平坦的坎坷,就会看到
阅读全文
摘要:遇到的问题:主要还是指针问题,还有算法思想要清晰。在删除时对于相同的数只能删除一次。不知什么原因。在GCC上运行却可以删除相同的数多次。 代码:#include <iostream>#include <cstdlib>using namespace std;typedef struct ListNode{ int data; struct ListNode *next;}*List;void createList(List &list,int arr[],int n){ List head,node; list=(List)malloc(sizeof(List)
阅读全文
摘要:遇到的问题 malloc、realloc的用法realloc:(类型 *)realloc(原来的内存地址,新的大小(*类型)); 指针的问题:要深刻理解指针,指针也是一个变量,在函数传递参数的过程中,作为参数来讲,传递的也是值。这个值就是指针本身的内容,即指针指向的地址。而不是传的指针。所以指针作为函数形参是一定要注意!代码:#include <iostream>#include <cstdlib>using namespace std;int Maxsize=10;typedef struct SeqListNode{ int data; int len;}*SeqL
阅读全文
摘要:顺序表的概念:顺序表就是用连续的存储空间来存储数据。顺序表的优点:方便查询,当查询时,直接用下标就可以,时间复杂度O(1);遇到的问题:srand函数中time()方法要加上头文件#include <time.h> ,使用srand()时,rand()函数生成的随机数会不同,srand()在for循环的外面。代码:#include <iostream>#include <cstdlib>#include <time.h>using namespace std;struct Snode{ int i; int data;}Slist[50];int
阅读全文
摘要:第十六篇 新的发现 “曾经沧海难为水,除却巫山不是云”,此刻的心情大概可以这么形容吧。 陆陆续续的更新自己的博客--坚持的力量,今天更新到了十六篇,有点感慨,有点期待。 开始觉得自己需要充电了,自己已经透支了。需要多读点书,需要增加自己的见解。看到他们那么有才,不禁想向他们学习。每天都不一样,每一天都比昨天有进步,哪怕只是一点点。这样会有量变,还有就是保持一颗好的心态,乐观的心态,积极锻炼身体,保持一个健康的体魄。“一万年太久,只争朝夕”。 我发现自己越来越敢于正视自己了,这是不是新的发现?我们需要努力!!! 世界缤纷需要用心去领会,就像每一个智慧都只是简简单单的一句话,却蕴涵隽永。我想要知识
阅读全文
摘要:今天,本来是想把VC的书还了,可是,又想起书里的光盘还没有拷贝呢。 于是,就把光盘拿了出来,放进光驱,结果,等了一会儿,居然没有读出来,只是光盘在光驱里响了几下。我郁闷了,这个光盘应该是好的吧。接着,我刷新了,关闭重启,还是读不出来。只有上网查资料了。搜了几次,于是发现了有人曾经也遇到了这个问题。原因大概是光驱的问题。我试着用网上提供的方法,把光驱给弹出来。 向实验室的人借了个回形针,记得上次他用它把乒乓球网给搞好了。我用回形针往那个孔里试了好几次,结果,光驱还是没弹出来。各种方法试了还是不管用。无论是拍机箱,晃机箱,都不顶用。我于是又用回形针试着打开,结果,居然光驱弹出来了。我是这样做的,.
阅读全文
摘要:第十五篇漩涡鸣人从他身上,我看到了进步和向上的力量,经别人推荐,我发现我渐渐的喜欢上了《火影忍者》。 首先,《火影》中的歌曲很有震撼力和穿透力,产生心灵的共鸣,不会像国内的某些歌曲,无病呻吟。再者,每一集中表达的语言很经典。还有就是剧情很深刻,技术很牛逼,日本的动漫牛掰的不是一下两下。 像漩涡鸣人学习,像忍者学习。没必要复制别人,要做就做自己。记得,有一集中,鸣人被嘲笑后,始终一贯的坚持,他终于做到了。他的内心是光明的,正因为这,带他走向自己世界。尽管艰难重重,还是义无反顾,坚持的拼搏,奋斗。 积蓄自己内心强大的力量,无论是影分身术,还是漩涡,都可以打败敌人,战胜对手,战胜自己。漩涡鸣人,好样
阅读全文
摘要:第十四篇奋斗的程序员不知为什么,书读的越多,越感到空虚;书读的越多,越感到自己的冷。一颗心像无底洞似的永远填不满,这难道是宿命?一颗心,永远追求光明,结果难道是疲惫?我无助的疑惑,惶恐。 奋斗永无止境,可是为什么那么的焦虑,这不是我。 终于有了答案,终于有一天,你会明白,你是幸福的。我是幸福的,因为我曾经历过痛苦,和不懈的追逐,而我已迈过那段苦涩。 奋斗的程序员开始吧。IT,记得高中时,就深深的喜欢上了这个词。而现在,我不再觉得时尚,我的理解是付出和收获,正确的判断。 学习计算机已经5年了,而我没有工作过,依然在求学的道路上。工作很辛苦?学习很辛苦?活着很辛苦?这都是我们所经历的,我告诉自己,
阅读全文
摘要:这个老是容易搞混,以前很清楚,但过一段时间不用,又忘了,因此今天整理成博客,以备以后查询。const char *类型的指针(指向常量的指针),其所指向的内容为常量,是不可以修改的,但其指针值是可以修改的。例如 char str[]="hello";//定义一个字符数组 const char *pStr=str; //把地址赋给指针常量*pStr='w';// error pStr=“world”; //right pStr被定义为指针常量,即它指向的字符串是常量,不可以修改,但pStr本身为指针,表示一个地址值,可以修改指向其他地址。char* const
阅读全文