学习目标:顺序表链表应用场景及逆置方法
学习内容:
1、 顺序表与链表的对比
1. 链表应用场景:
奶茶店排队叫号系统
2. 顺序表应用场景:
课堂点名系统
2、 逆置循序表
void reverse(sqlist &a) //传一个数组或顺序表
{
int i, j, t;
for(i=0, j=length-1; i<j; i++, j--){ //注意判断条件,长度为奇数的循环条件是i!=j;长度为偶数的循环条件为i<j;
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
3、 逆置链表
逆置链表思想:
顺序读取每一个结点,然后将读取的每一个结点都用头插法插到头结点后,然后删除上一结点
void reverse(Linklist &l)
{
LNode *p = l->next; //第一个结点
LNode *s, *r = l;
while(p!=NULL){
s = (LNode)malloc(sizeof(Node));
if(s==NULL)
return false;
s->data = p->data;
s->next = l->next; //这句话意思是链接上一个结点,看不懂的话复习尾插法
l->next = s;
r = p;
p = p->next;
free(r);
}
}
学习时间:
学习产出:
1、 数据结构视频2.3.6
2、逆置顺序表代码