标签:顺序表 包含 keyword size 存在 修改 重点 image 元素
第二章讲的是线性结构中的线性表,可以按照顺序存储结构和链式存储结构对它进行分类。以下是整理出来的重点:
此外,如何打代码也是一个重点。从目前打过的代码来看,我主要存在的问题是:
1.结点类型和链表类型未分清楚。
Elemtype data;
struct Lnode *next;
}Lnode;//定义结点类型。若用其来定义指针类型,如Lnode *Linklist,申请新的空间后,这个(头)指针就指向Lnode类型的新结点。由于结点间通过指针连接,可称Linklist是一个链表。
Lnode *head;
Lnode *tail;//分别指向链表的头结点和尾结点
}List;//定义链表类型。如果该链表需要用到尾指针或者其他的元素(即只包含一个头指针不能满足所有的操作时),需要根据实际情况把所需的元素打包起来,定义一个链表。
2.运行结束后没有回收申请的空间。
void destorylist(Linklist L)
{
LNode *p=l1,*q;
while(p)
{
q=p->next;
delete(p);
p=q;
}//逐个删除结点
}
3.有时循环体中的判断语句写不好,经常会漏“指针p不为空”的条件。同时应该要考虑清楚p->next==NULL的情况该如何处理,判断是否继续进行循环时是用“p”去判断还是用"p->next"去判断。
4.容易忽略引用符号的使用。
5.考虑的情况不够全面,会漏空表、头结点这样的特殊情况。
第二章的内容很多都跟代码相关,实践性会强一些。这次的预习是先看课本再看视频。概念是自以为理得大概清楚了,真正打起码来便开始模糊......比如发现自己没有理解循环链表相关操作的含义和目的、分不清结点和链表的定义等。我觉得我应该改改预习的方法,多动手去敲敲课本的代码熟悉它的写法这样。另外这周的学习中有小组合作打码的环节。我发现我的同学们都太棒了!晓娜会首先考虑代码的效率,从这个角度再去确定循环条件写什么。然后大家一起讨论的时候会慢慢想到各种情况再做修改。也许这可能是我们打代码打的慢的原因吧,一开始没有先想好有什么情况再写。总的来说,第2章的学习还是有不少收获的!
标签:顺序表 包含 keyword size 存在 修改 重点 image 元素
原文地址:https://www.cnblogs.com/sheawong/p/12616639.html