第二次学习报告
前言
我近期学习的一些小心得。
一、链表的使用
二、一些小技巧
1.先遍历记录链表的长度(我目前没有学习到一些函数去获取链表的长度)
代码如下:
int length(linklist head)//我定义的链表的名称是*linklist;
{
linklist p;
int i=0;
p=head;
while(p)
{
i++;
p=p->next;
}
return i;
}
2.链表对于数据的排序是比较麻烦的,因此我们可以利用链表和数组之间的转换,使用c++中的sort快排函数达到极大缩短时间的操作(时间是nlog2n);
代码如下(示例):
void insert(int x,linklist head)/*链表的插入与排序(利用链表与数组数据之间的转换,
极大的压缩了排序的时间);*/
{
linklist p,new_node=NULL;
head->score=0;
p=head->next;
new_node=(linklist)malloc(sizeof(linklist));
new_node->score=x;
new_node->next=p->next;
p->next=new_node;
for(int i=0;i<len;i++)
{
zjx[i]=p->score;
p=p->next;
}
sort(zjx,zjx+len);//c++中的函数;
p=head->next;
for(int i=0;i<len;i++)
{
p->score=zjx[i];
p=p->next;
}
}
一、单片机的中断以及计时器;
二、TMOD(计时器)通常只需要使用16位工作的计时器TMOD=0x01(第二重工作方式);
三、中断的使用
TMOD=0x01;
TH0=(65536-50000)/256;//初始时长初始化;
TL0=(65536-50000)%256;
EA=1;//申请总中断;
ET0=1;//对定时器相应的位置进行中断
TR0=1;//打开该定时器0;TR0=0时,打开定时器1;
void timer0() interrupt 1 //自定义中断函数,后面需要加interrupt 1;
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
//下面的空白就是你中断后需要去处理的实践;
}
1.合理的使用延时函数,可以实现很多小功能。
总结
还有一些零零散散的知识就没写上来;