8.30-10.30
背单词+背范文 +英语课试课 (2小时)
10.30-11.30 (1小时)
用记事本写代码真的不方便,但确实有得到锻炼,(输入中文之后没有换成英文的,运行的时候就一直错误,改过来之后又没有保存(以为会自动保存,是我憨了),然后继续错,就搞了好久才搞对。写打印菱形的那个循环,格式不和cd上一样,很不习惯也搞了挺久的。。。
13.00-17.00
写PTA (4小时)
…(中间错了N,就没有截图了)
这个题我也写了挺久的,链表总能把我搞晕,一下又是指针没有移动,一下又是没有NULL,问了同学,才慢慢解决,之前一直搞不懂什么时候要开辟新空间,所以这次就每个指针都开了(这样就浪费空间了),然后热心同学告诉我,当一个指针没有指向已存在的空间时,才需要开辟新空间(这是我对他的话所理解的,应该是没错吧。。)。
List Merge( List L1, List L2 )
{
List p1,p2,t,L;
p1=(List )malloc(sizeof(List));
p2=(List )malloc(sizeof(List));
t=(List )malloc(sizeof(List));
L=(List )malloc(sizeof(List));
p1=L1->Next;
p2=L2->Next;
L->Next=NULL;
t=L;
if(L1==NULL&&L2==NULL)
return L;
else
{
while(p1!=NULL&&p2!=NULL)
{
if(p1->Data<=p2->Data)
{
t->Next=p1;
t=p1;
p1=p1->Next;
}
else if(p1->Data>p2->Data)
{
t->Next=p2;
t=p2;
p2=p2->Next;
}
}
while(p1!=NULL)
{
t->Next=p1;
p1=p1->Next;
t=t->Next;
}
while(p2!=NULL)
{
t->Next=p2;
p2=p2->Next;
t=t->Next;
}
L1->Next=NULL;
L2->Next=NULL;
t->Next=NULL;
return L;
}
}
(你没看错,就是这么简单的题我都错了好多次,一开始是把h>=TOL写在while的括号里,后来发现跳出循环会晚一步,我快颠了。。。)
这个题,一开始,我是边找边从后往前移动线性表的,提交就会运行超时,后来灵光一现,我直接把区间外的存进线性表就好了,而且时间复杂度比之前的方法低好多,我总是把问题复杂化。。。
List Delete( List L, ElementType minD, ElementType maxD )
{
int cnt=0;
for(int i=0;i<=L->Last;i++)
{
if(L->Data[i]<=minD||L->Data[i]>=maxD)
{
L->Data[cnt++]=L->Data[i];
}
else
continue;
}
L->Last=cnt-1;
return L;
}
这又是一个让我错了很多次的题(哭),也不是难题,我的思路是,先用cnt记录又记个结点,然后在判断倒数第m个与cnt的关系,用flag记住,然后遍历链表,到flag就return;
我是错在了flag的值求错了,一直觉得要加一,后来问了张同学(zai),才解决这个问题(此处感谢张同学!)
ElementType Find( List L, int m )
{
List p,q;
p=L->Next;
int cnt=1;
while(p!=NULL)
{
p=p->Next;
cnt++;
}
int flag=cnt-m;
if(flag<=0)
{
return ERROR;
}
if(flag>0)
{
q=L->Next;
for(int i=1;q!=NULL;i++)
{
if(i==flag)
{
return q->Data;
}
else
q=q->Next;
}
}
}
19.00-20.15
看Java并做笔记 (1小时)
今天看了一部分字符串的内容,看的时候都会和C做对比,很多地方确实Java要方便一点,比如说截取字符串片段,或者是连接多个字符串等都要比C 方便些,Java牛批!
Java字符串笔记