数据结构第二章学习小结
- 第二章里学习了线性表的两种存储结构,其中链式结构会比较难理解一点。但是经过了两次小组合作和PTA上的作业之后,已经对知识点的理解深刻了许多。所以学习新知识还是要多运用才能理解得更好。
- 完成作业或实践时,偶尔会遇到一两个测试点上总是过不去的困难,然后会和同学一起互相参考并讨论最终完成。有时候会p和p->next分不清,然后自己也没有注意到;或者格式问题;或者最后会忘记释放空间等等等等。总的来说就是自己往往不够细心。
- https://www.jianshu.com/p/2a0db725044c 是关于单链表的知识,感觉看完之后比较好理解,自己感觉挺有用的!
在第二次小组合作代码时,在删除函数中,没有考虑到会把尾指针也删掉,没有重置尾指针,以后可以参考一下;
1 void D(LNode &L, List &a) //删除操作 2 { 3 if (a.head->next==NULL) cout << "Empty list" << endl; //判断链表是否为空 4 else 5 { 6 LNode *q; 7 q = a.head->next; //指向头结点 8 ElemType x; 9 x = q->data; 10 if (q==a.tail) //重置尾结点 11 { 12 a.head->next = NULL; 13 a.tail = a.head; 14 } 15 else a.head->next = q->next; 16 delete q; //释放q空间 17 cout << "Delete " << x << " OK" << endl; 18 } 19 }
4.希望接下来在第三章的学习中,自己可以尽快掌握新知识,要多运用,而不是只照着书本上的代码打;希望自己可以熟练的打出线性表定义等等函数的代码,不用照着来打。