摘要:我的博客搬家了。。。新博客地址 http://leeblogs.com/
阅读全文
摘要:昨天学习了string,本以为没神马用,因为看上去跟原有的strcmp,strcpy,strcat,没神马区别,后来据说类中必须要用到他,才开始学习他的几个操作,几个重要操作;( 如果一个字符串是用string定义的,不是用char定义的那么上面三个字符串函数都不能用了,若要用只能用char定义 )( 一下s,str代表字符串,ch代表字符 )1 string 初始化赋值: string str( s )( 以s作为str的初值 ),string str( s , length )( 以s的前length个字符作为str的初值 ),string str( s , pos , length ),
阅读全文
摘要:哥人生的第一个C++,麻烦的类啊。。 #include<iostream>#include<cmath>#include<cstdlib>#include<cstring>using namespace std;class Cs{ public: float Ave( ); void Print( ) { cout<<"姓名"<<name<<endl; cout<<"学号"<<No<<endl; cout<<"课程
阅读全文
摘要:摘自上海交大bbs:奋是基础,一切的前提奋之上是忍耐大部分时候大部分人的“习惯”都是跟“效率”作对的奋让你有机会去跟这些习惯做斗争在ACM竞赛的级别,写代码不是在解题,而是实现早已在脑子里准备好的一个逻辑流程。这个追求跟大部分没有训练过的人的习惯相反,要扭转这种习惯,第一步可以做尝试有:1.把准备和敲键盘分割为两个动作。2.把敲键盘和运行分割为两个动作。3.编译错误这件事情几乎总是会发生,但“尝试”减少编译错误的过程,确实对提高准备效率很有帮助帮助。写程序的准备->写代码->测试三阶段,普通人之间差距最小的就是第二个阶段。速度都是在“短到完全不充分或者长得非常没建设性”的准备期,以
阅读全文
摘要:这题是一栈题,开始我用数组模拟做,改了一上午没改得出,最后放弃了,后来跟白神一起做时,白神发现错误了,也是我犯的错误,像 4 1234 2134 这种也可以啊。。。 我明白了,中间也可以出栈。先把两个字符串存起来,然后先进栈,若遇到出栈的信息且要出的那辆车刚好在栈顶就可以出。否则就进栈#include<stdio.h>#include<string.h>int n,c,num1[11],num2[11],rec[11],L[11];int main( ){ int i,j,cnt,k; while( scanf( "%d",&n ) == 1
阅读全文
摘要:这个题是考数据结构的二叉排序树,对每个输入的字符串都建立一棵二叉树,然后进行先序遍历,进行后序遍历( 因为由两个遍历可以确定一棵树 ),所以每次只要先建立一棵树,然后把他们的先序遍历和后序遍历比较,若都相等就YES,否则NO#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct Node{ int data; struct Node *lc,*rc;}node,*Link;int n,f,c,cnt;char f1[11],la1[11],f2[11],la2[11];void
阅读全文
摘要:用二叉排序树写一个#include<stdio.h>typedef struct Node{ int data; struct Node *lc,*rc;}node,*Link;int n,f;inline int fab( int a ){ return a > 0 ? a : -a;}void insert( Link *L,int x ){ if( *L ) { if( fab( x ) > fab( ( *L ) -> data ) ) insert( &( *L ) -> lc,x ); else insert( &( *L ) -
阅读全文
摘要:这两天要弄数据结构考试,就在写二叉排序树二叉排序树总共三个操作:插入,查找,删除,遍历;先提醒对于插入,删除等要改变这棵树的操作都要用二维指针,否则不能改变,而遍历( 打印 ),查找( 这里的查找因为要为删除服务,所以用了二维指针,其实纯粹的查找是不需要的 )不需改变他的值,所以不用二维指针插入:小的往左边放,大的往右边放,相等的直接不要,然后递归处理就可以了。查找:如果查找的值等于当前节点,则返回当前节点,若查找的值比当前节点小则在当前节点的左子树中去找,若比当前节点大,则在当前右子树中去找,若差找不成功,返回NULL;删除:这个是最令我头痛的,开始按数据结构上的来,一直改不对,就一直在找事
阅读全文
摘要:堆排第一道。。 开始一直wa。。 最后发现up和down都没递归#include<stdio.h>int num[30005],e[9000000],n,m,c;inline void swap( int i,int j ){ e[i] ^= e[j] ^= e[i] ^= e[j];}void up( int c ){ if( c > 1 ) if( e[c] > e[c/2] ) swap( c,c/2 ),up( c / 2 );}void insert( int x ){ e[++c] = x; up( c );}inline void down( int q
阅读全文
摘要:第一次有点理解,写了个二叉树#include<stdio.h>#include<stdlib.h>typedef struct Node{ char ch; struct Node *lc,*rc;}node,*Link;void Create( Link *L ){ char ch; while( scanf( "%c",&ch ),ch == ' ' || ch == '\n' ); if( ch == '#' ) *L = NULL; else { ( *L ) = new node; (
阅读全文
摘要:这是我水的第二道KMP题目。。。 哈哈 用了输入外挂187MS水过#include<stdio.h>int num1[1000005],num2[10005],next[10005],n,m;void getnext( ){ int i = 0,j = -1; next[0] = -1; while( i < m ) { if( j == -1 || num2[i] == num2[j] ) ++i,++j,next[i] = j; else j = next[j]; }}int KMP( ){ int i = 0, j = 0; while( i < n &&
阅读全文